1.在zymddpm虚拟环境中,报错:
Traceback (most recent call last):
File "scripts/train_cifar.py", line 8, in <module>
from ddpm import script_utils
ModuleNotFoundError: No module named 'ddpm'
和(一)中的解决方法一样,对于zymddpm这个新环境添加环境变量,输入:
export PYTHONPATH=/data/zym/ddpm/DDPM-main:$PYTHONPATH
python scripts/train_cifar.py
2.报错:
Traceback (most recent call last):
File "scripts/train_cifar.py", line 164, in <module>
main()
File "scripts/train_cifar.py", line 29, in main
run = wandb.init(
AttributeError: module 'wandb' has no attribute 'init'
命令行输入:
pip install wandb
3.运行成功,但中间出现一个fail:
Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./cifar_train/cifar-10-python.tar.gz
100.0%
Extracting ./cifar_train/cifar-10-python.tar.gz to ./cifar_train
Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./cifar_test/cifar-10-python.tar.gz
100.0%
Extracting ./cifar_test/cifar-10-python.tar.gz to ./cifar_test
Traceback (most recent call last):
File "scripts/train_cifar.py", line 164, in <module>
main()
File "scripts/train_cifar.py", line 122, in main
torch.save(diffusion.state_dict(), model_filename)
File "/home/zhangyiming/.conda/envs/zymddpm/lib/python3.8/site-packages/torch/serialization.py", line 376, in save
with _open_file_like(f, 'wb') as opened_file:
File "/home/zhangyiming/.conda/envs/zymddpm/lib/python3.8/site-packages/torch/serialization.py", line 230, in _open_file_like
return _open_file(name_or_buffer, mode)
File "/home/zhangyiming/.conda/envs/zymddpm/lib/python3.8/site-packages/torch/serialization.py", line 211, in __init__
super(_open_file, self).__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: '~/ddpm_logs/cifar-ddpm-2023-09-11-14-36-iteration-1000-model.pth'
这个错误表明在 Python 脚本中,尝试保存 PyTorch 模型权重时遇到了文件路径问题。具体来说,它无法找到指定的文件路径 ~/ddpm_logs/cifar-ddpm-2023-09-11-14-36-iteration-1000-model.pth
。如果需要消除这个fail,只需要修改代码中save权重的路径就可以了!
4.运行结果:
5.运行结果说明
Media:展示十张在标准正态分布随机采样的图,经过remove noise之后的结果;比较模糊,因为是玩具代码,代码功能能够基本实现DDPM算法的思想即可;
chart:test_loss和train_loss
gradient:以第一个梯度记录图为例,ups.14.residual_connection.bias
指示了录的具体参数的名称。该图记录了模型中的某一层(可能是第14个上采样层)的残差连接(residual connection)的偏置参数(bias)。这允许我们跟踪该特定参数在训练过程中的梯度变化。 这个模块主要是记录模型中某一层的权重与偏置参数的梯度变化。