-
pytorch优化memo
1 pin-memory 锁页内存 CPU内存分配默认是可分页的,GPU无法直接从可分页CPU内存访问数据,因此需要先创建一个临时的缓冲区(pinned memory),把数据从可分页内存拷贝pinned内存上,然后GPU才能从pinned内存... -
pytorch 数据操作和广播
123unsqueeze(增加维度的index)squeeze(减少维度的index)T 转置 -
python 动态hack方法
由于很多时候需要hack forward函数,修改其中的逻辑,目前学习到的有两种修改实例的方法,之后还会有补充。 __get__ 12345678910111213141516171819class OriginalClass: def or... -
controlnet源码一点小迷思
迷之思考1 control相加位置 在论文以及webui实现中,controlnet的输出都是相加在upblock和midblock的输入位置,然而在diffusers的实现中,在运算完downblock后,将down_block_additio... -
prefill和decode
Overview prefill阶段:对输入的 prompts 进行处理 decode阶段:利用自回归的方式来生成 tokens 一个请求会经过一次prefill,和多次decode,每生成一个token就进行一次decode。 prefill是... -
deepcache学习笔记
DeepCache 原理 下采样属于浅层特征,上采样属于深层特征,去噪过程中的相邻步骤在深层特征上表现出显著的时间相似性,即连续步骤之间的变化通常较小。 从图中可以看出其实现思路,在上采样的倒数第二块的结果作为cache,和上采样第一个块拼接作为... -
python 可变和不可变变量
今天读代码时,看到下面这行代码,很疑惑为什么total_controlnet_embedding会随着target而改变,之前写C++/Go的时候,变量赋值是开辟另一个内存空间,除非用指针才会指向同一个内存空间。 搜了下发现python中,当将一个可... -
生图条件控制算法
本文主要介绍基于Stable Diffusion下的对生图进行条件控制的几种常用算法。 1 ControlNet 1.1 UNet 在介绍ControlNet之前首先介绍一下Stable Diffusion的基础网络UNet,UNet网络结构分为... -
优质博客收藏
Machine Learning 翁荔:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/#prog-distll 周弈帆:https://zhouyifan.net/2...