连续信噪比变换
ContinuousSNRTransform
基类:ABC
连续信噪比调度的基类。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
|
__init__(direction)
初始化 DiscreteNoiseSchedule。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
direction
|
TimeDirection
|
必需,定义调度器构建的方向 |
必需 |
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
45 46 47 48 49 50 51 |
|
calculate_alpha_log_snr(log_snr)
基于对数信噪比计算 alpha 值。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
log_snr
|
Tensor
|
表示对数信噪比的输入张量。 |
必需 |
返回
名称 | 类型 | 描述 |
---|---|---|
Tensor |
Tensor
|
表示给定对数信噪比的 alpha 值的张量。 |
注释
此方法计算 alpha 值,即对数信噪比的 sigmoid 函数的平方根。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
175 176 177 178 179 180 181 182 183 184 185 186 187 |
|
calculate_alpha_t(t)
基于对数信噪比调度计算 alpha 值。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
t
|
Tensor
|
表示时间步长的输入张量。 |
必需 |
返回
名称 | 类型 | 描述 |
---|---|---|
Tensor |
Tensor
|
表示给定时间步长的 alpha 值的张量。 |
注释
此方法计算 alpha 值,即对数信噪比的 sigmoid 函数的平方根。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
|
calculate_beta(t)
计算形式为 $dx = -\frac{1}{2} \beta(t) x dt + sqrt(beta(t)) dw_t$ 的 OU 过程的漂移系数。
beta = d/dt log(alpha**2) = 2 * 1/alpha * d/dt(alpha)
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
t
|
Union[float, Tensor]
|
t 在 [0, 1] 中 |
必需 |
返回
名称 | 类型 | 描述 |
---|---|---|
Tensor |
beta(t) |
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
|
calculate_general_sde_terms(t)
计算给定时间步长 t 的通用 SDE 项。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
t
|
Tensor
|
表示时间步长的输入张量。 |
必需 |
返回
类型 | 描述 |
---|---|
tuple[Tensor, Tensor]:包含漂移项 f_t 和扩散项 g_t_2 的元组。 |
注释
此方法计算通用 SDE 的漂移项和扩散项,可用于模拟随机过程。漂移项表示过程的确定性部分,而扩散项表示随机部分。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
|
calculate_log_snr(t, device='cpu', synchronize=None)
生成作为张量的时间调度的公共包装器。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
t
|
Tensor
|
表示时间步长的输入张量,值范围为 0 到 1。 |
必需 |
device
|
Optional[str]
|
放置调度的设备。默认为“cpu”。 |
'cpu'
|
synchronize
|
optional[TimeDirection]
|
用于同步调度的时间方向。如果调度是用不同的方向定义的,则此参数允许翻转方向以匹配指定的方向。默认为 None。 |
None
|
返回
名称 | 类型 | 描述 |
---|---|---|
Tensor |
Tensor
|
表示给定时间步长的对数信噪比 (SNR) 的张量。 |
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
|
derivative(t, func)
计算函数的导数,它支持批处理的单变量输入。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
t
|
Tensor
|
计算导数的时间变量 |
必需 |
func
|
Callable
|
用于导数计算的函数 |
必需 |
返回
名称 | 类型 | 描述 |
---|---|---|
Tensor |
Tensor
|
从计算图中分离的导数 |
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
|
log_snr_to_alphas_sigmas(log_snr)
将对数信噪比 (SNR) 转换为 alpha 和 sigma 值。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
log_snr
|
Tensor
|
输入对数信噪比张量。 |
必需 |
返回
类型 | 描述 |
---|---|
Tuple[Tensor, Tensor]
|
tuple[Tensor, Tensor]:包含 alpha 和 sigma 值的平方根的元组。 |
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
90 91 92 93 94 95 96 97 98 99 100 101 |
|
CosineSNRTransform
基类:ContinuousSNRTransform
余弦信噪比调度。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
nu
|
Optional[Float]
|
余弦调度指数的超参数(默认为 1.0)。 |
1.0
|
s
|
Optional[Float]
|
余弦调度偏移的超参数(默认为 0.008)。 |
0.008
|
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
|
__init__(nu=1.0, s=0.008)
初始化 CosineNoiseSchedule。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
214 215 216 217 218 |
|
LinearLogInterpolatedSNRTransform
基类:ContinuousSNRTransform
线性对数空间插值信噪比调度。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
|
__init__(min_value=-7.0, max_value=13.5)
从 Chroma 初始化线性对数空间插值信噪比调度。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
min_value
|
Float
|
最小对数信噪比值。 |
-7.0
|
max_value
|
Float
|
最大对数信噪比值。 |
13.5
|
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
270 271 272 273 274 275 276 277 278 279 |
|
LinearSNRTransform
基类:ContinuousSNRTransform
线性信噪比调度。
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 |
|
__init__(min_value=0.0001)
初始化线性信噪比变换。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
min_value
|
Float
|
信噪比的最小值为 1.e-4。 |
0.0001
|
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
241 242 243 244 245 246 247 248 |
|
log(t, eps=1e-20)
计算张量的自然对数,钳制值以避免数值不稳定性。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
t
|
Tensor
|
输入张量。 |
必需 |
eps
|
float
|
钳制输入张量的最小值(默认为 1e-20)。 |
1e-20
|
返回
名称 | 类型 | 描述 |
---|---|---|
Tensor |
输入张量的自然对数。 |
源代码位于 bionemo/moco/schedules/noise/continuous_snr_transforms.py
29 30 31 32 33 34 35 36 37 38 39 |
|