论文阅读Diffusion Autoencoders: Toward a Meaningful and Decodable Representation

原文框架图:

官方代码: https://github.com/phizaz/diffae/blob/master/interpolate.ipynb

主要想记录一下模型的推理过程 :

%load_ext autoreload
%autoreload 2
from templates import *
device = 'cuda:1'
conf = ffhq256_autoenc()
# print(conf.name)
model = LitModel(conf)
state = torch.load(f'checkpoints/{conf.name}/last.ckpt', map_location='cpu')
model.load_state_dict(state['state_dict'], strict=False)
model.ema_model.eval()
model.ema_model.to(device);
Global seed set to 0
Model params: 160.69 M
data = ImageDataset('imgs_interpolate', image_size=conf.img_size, exts=['jpg', 'JPG', 'png'], do_augment=False)
batch = torch.stack([data[0]['img'],data[1]['img'],
])
import matplotlib.pyplot as plt
plt.imshow(batch[0].permute([1, 2, 0]) / 2 + 0.5)

cond = model.encode(batch.to(device))
xT = model.encode_stochastic(batch.to(device), cond, T=250)import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 2, figsize=(10, 5))
ori = (batch + 1) / 2
ax[0].imshow(ori[0].permute(1, 2, 0).cpu())
ax[1].imshow(xT[0].permute(1, 2, 0).cpu())

 

 Interpolate

Semantic codes are interpolated using convex combination, while stochastic codes are interpolated using spherical linear interpolation.

import numpy as np
alpha = torch.tensor(np.linspace(0, 1, 10, dtype=np.float32)).to(cond.device)
intp = cond[0][None] * (1 - alpha[:, None]) + cond[1][None] * alpha[:, None]def cos(a, b):a = a.view(-1)b = b.view(-1)a = F.normalize(a, dim=0)b = F.normalize(b, dim=0)return (a * b).sum()theta = torch.arccos(cos(xT[0], xT[1]))
x_shape = xT[0].shape
intp_x = (torch.sin((1 - alpha[:, None]) * theta) * xT[0].flatten(0, 2)[None] + torch.sin(alpha[:, None] * theta) * xT[1].flatten(0, 2)[None]) / torch.sin(theta)
intp_x = intp_x.view(-1, *x_shape)pred = model.render(intp_x, intp, T=20)import matplotlib.pyplot as plt
# torch.manual_seed(1)
fig, ax = plt.subplots(1, 10, figsize=(5*10, 5))
for i in range(len(alpha)):ax[i].imshow(pred[i].permute(1, 2, 0).cpu())
# plt.savefig('imgs_manipulated/compare.png')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenVLA-OFT——微调VLA的三大关键设计:并行解码、动作分块、连续动作表示以及L1回归目标

前言 25年3.26日,这是一个值得纪念的日子,这一天,我司「七月在线」的定位正式升级为了:具身智能的场景落地与定制开发商 ,后续则从定制开发 逐步过渡到 标准产品化 比如25年q2起,在定制开发之外&#xff0…

【论文阅读】Dynamic Adversarial Patch for Evading Object Detection Models

一、介绍 这篇文章主要是针对目标检测框架的攻击,不同于现有的攻击方法,该论文主要的侧重点是考虑视角的变化问题,通过在车上布置多个显示器,利用视角动态选择哪一个显示器播放攻击内容,通过这种方法达到隐蔽与攻击的…

多模态技术概述(一)

1.1 多模态技术简介 1.1.1 什么是多模态 多模态(Multimodal)涉及多种不同类型数据或信号的处理和融合,每种数据类型或信号被称为一种模态。常见的模态包括文本、图像、音频、视频等。多模态技术旨在同时利用这些不同模态的数据,以实现更全面、更准确的理…

nginx2

Nginx反向代理(七层代理)、Nginx的TCP/UDP调度器(四层代理)、 一、Nginx反向代理(七层代理) 步骤&#xff1a; ​ 部署后端web服务器集群 ​ 配置Nginx代理服务器 ​ 配置upstream集群池 ​ 调节集群池权重比 <img src"/home/student/Deskt…

调用kimi api

官网支持python&#xff0c;curl和node.js 因为服务器刚好有php环境&#xff0c;所以先用curl调个普通的语音沟通api <?php // 定义 API Key 和请求地址 define(MOONSHOT_API_KEY, sk-PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXgk1); define(MOONSHOT_API_URL, https://…

关于 UPDATE 语句 和 SELECT ... FOR UPDATE 的对比分析,包括语法、功能、锁机制、使用场景及示例代码

以下是关于 UPDATE 语句 和 SELECT ... FOR UPDATE 的对比分析&#xff0c;包括语法、功能、锁机制、使用场景及示例代码&#xff1a; 1. UPDATE 语句 功能 直接修改数据&#xff1a;立即更新表中的数据&#xff0c;并提交修改。无显式锁&#xff1a;虽然会自动加锁&#xff…

在航电系统中提高可靠性的嵌入式软件设计

1.总线余度设计 数据传输采用双余度总线设计&#xff0c;CANFD为主&#xff0c;RS485为备。发送方将相同的数据分别通过双总线来发送&#xff0c;接收方优先处理主线数据。由于总线上数据频率固定&#xff0c;可设置定时器监控主总线的数据&#xff0c;当定时器超时后&#xff…

第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:5.回文数组

题目1 回文数组 小蓝在无聊时随机生成了一个长度为 n 的整数数组&#xff0c;数组中的第 i 个数为 ai&#xff0c;他觉得随机生成的数组不太美观&#xff0c;想把它变成回文数组&#xff0c;也是就对于任意 i∈[1,n] 满足 a i a n − i 1 a_ia_{n−i}1 ai​an−i​1。 小蓝…

netty中的WorkerGroup使用详解

Netty中WorkerGroup的深度解析 WorkerGroup是Netty线程模型中的从Reactor线程组&#xff0c;负责处理已建立连接的I/O读写、编解码及业务逻辑执行。其设计基于主从多Reactor模型&#xff0c;与BossGroup分工协作&#xff0c;共同实现高并发网络通信的高效处理。 一、WorkerGro…

模运算核心性质与算法应用:从数学原理到编程实践

目录 &#x1f680;前言&#x1f31f;数学性质&#xff1a;模运算的理论基石&#x1f4af;基本定义&#xff1a;余数的本质&#x1f4af;四则运算规则&#xff1a;保持同余性的关键 &#x1f99c;编程实践&#xff1a;模运算的工程化技巧&#x1f4af;避免数值溢出&#xff1a;…

#Git 变基(Rebase)案例

适合学习理解的 Git 变基&#xff08;Rebase&#xff09;案例 为了帮助你更好地理解 Git 变基&#xff08;Rebase&#xff09;的操作和效果&#xff0c;下面通过一个简单的案例来演示变基的过程和影响。 案例背景 假设我们有一个 Git 仓库&#xff0c;包含两个分支&#xff1…

泰博云平台solr接口存在SSRF漏洞

免责声明&#xff1a;本号提供的网络安全信息仅供参考&#xff0c;不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权&#xff0c;请及时与我联系&#xff0c;我将尽快处理并删除相关内容。 漏洞描述 SSRF漏洞是一种在未能获取服务器…

MyBatis 动态SQL 详解!

目录 一、 什么是动态 SQL&#xff1f;二、 为什么需要动态 SQL&#xff1f;三、 MyBatis 动态 SQL 标签四、 标签详解及示例1、 if 标签2、 choose、when、otherwise 标签3、 where 标签4、 set 标签5、 foreach 标签6、 sql、include 标签 五、 总结 &#x1f31f;我的其他文…

阿里云服务器遭遇DDoS攻击有争议?

近年来&#xff0c;阿里云服务器频繁遭遇DDoS攻击的事件引发广泛争议。一方面&#xff0c;用户质疑其防御能力不足&#xff0c;导致服务中断甚至被迫进入“黑洞”&#xff08;清洗攻击流量的隔离机制&#xff09;&#xff0c;轻则中断半小时&#xff0c;重则长达24小时&#xf…

如何在Springboot的Mapper中轻松添加新的SQL语句呀?

在如今的软件开发界&#xff0c;Spring Boot可是非常受欢迎的框架哦&#xff0c;尤其是在微服务和RESTful API的构建上&#xff0c;真的是让人爱不释手&#xff01;今天&#xff0c;我们就来聊聊如何为Spring Boot项目中的Mapper添加新的SQL语句吧&#xff01;说起来&#xff0…

Qt 中 findChild和findChildren绑定自定义控件

在 Qt 中&#xff0c;findChild 和 findChildren 是两个非常实用的方法&#xff0c;用于在对象树中查找特定类型的子对象。这两个方法是 QObject 类的成员函数&#xff0c;因此所有继承自 QObject 的类都可以使用它们。当您需要查找并绑定自定义控件时&#xff0c;可以按照以下…

leecode第19天

15、三数之和 # 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c; # 同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 # 注意&#xff1a;答案中不可以包含重复…

2109. 向字符串添加空格

2109. 向字符串添加空格 题目链接&#xff1a;2109. 向字符串添加空格 代码如下&#xff1a; class Solution { public:string addSpaces(string s, vector<int>& spaces) {string res "";int j 0;//直接遍历即可for (int i 0;i < spaces.size();i…

Java Spring Boot 与前端结合打造图书管理系统:技术剖析与实现

目录 运行展示引言系统整体架构后端技术实现后端代码文件前端代码文件1. 项目启动与配置2. 实体类设计3. 控制器设计4. 异常处理 前端技术实现1. 页面布局与样式2. 交互逻辑 系统功能亮点1. 分页功能2. 搜索与筛选功能3. 图书操作功能 总结 运行展示 引言 本文将详细剖析一个基…

CSRF跨站请求伪造——入门篇【DVWA靶场low级别writeup】

CSRF跨站请求伪造——入门篇 0. 前言1. 什么是CSRF2. 一次完整的CSRF攻击 0. 前言 本文将带你实现一次完整的CSRF攻击&#xff0c;内容较为基础。需要你掌握的基础知识有&#xff1a; 了解cookie&#xff1b;已经安装了DVWA的靶场环境&#xff08;本地的或云的&#xff09;&am…