初学者体验扩散模型

可以在这个网址下载代码,里面有很多现有的,比如文字生成图像,图像生成图像

https://github.com/huggingface/diffusers

因为扩散模型训练起来很慢,不一定每个人都可以训练出来,所以他们提供了现成的模型,可以直接调用,就很爽。下面这个网址就是所有的模型汇总的,不仅仅局限于扩散模型。下面我来演示在服务器上用自己的数据训练模型。

Models - Hugging Face

1.下载模型源码

可以直接进入第一个链接去下载,也可以在服务器上输入如下命令:

git clone https://github.com/huggingface/diffusers
cd diffusers
pip install .

下包之前,最后自己手动下载torch,指定版本,不然就是最新版。

#这两个是不同版本的torch,对应不同版本的cuda
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 -f https://download.pytorch.org/whl/torch_stable.html

这里还不能下载其他包,按照你要做的扩散模型来下。

2.下载安装包

以图像生成图像为例:

进入example,unconditional_image_generation,里面只有三个文件,就是图像中的后三个。前面那两个是我自己建的。

下载这里的requirements中的包,并在unconditional_image_generation中导入自己的数据集。如果没有自己的数据集,可以用该网站自带的。

数据集要求格式如下:

data_dir/xxx.png
data_dir/xxy.png
data_dir/[...]/xxz.png

3.修改参数

进入train_unconditional.py,找到main函数,这些看自己情况修改。参数有很多。

  --train_data_dir="imgs" \#数据集
  --resolution=64 \数据集的size大小,代码会把你的数据集里所有的图像压缩成这个大小,
#而且也是生成图像的大小
  --output_dir="ddpm-ema-flowers-64" \模型位置
  --train_batch_size=16 \
  --num_epochs=100 \

4.配置训练环境

这个扩散模型还需要额外的修改下环境配置,如下所示

accelerate config

你可以照我这么来弄,也可以按照选项来。

5.训练 

这个起码训练10h+,弄个nohup。

nohup accelerate launch train_unconditional.py > ./output.log 2>&1 &

6.使用model

新建一个generate.py,改一下model_id,就可以用了

# !pip install diffusers
from diffusers import DDPMPipeline, DDIMPipeline, PNDMPipeline
import os
model_id = "ddpm-model-64"
#生成的图像放的位置
img_path = 'results'+'/'+model_id+'-img'
if not os.path.exists(img_path): os.mkdir(img_path)
device = "cuda"

# load model and scheduler
ddpm = DDPMPipeline.from_pretrained(model_id)  # you can replace DDPMPipeline with DDIMPipeline or PNDMPipeline for faster inference
ddpm.to(device)
for i in range(100):
    # run pipeline in inference (sample random noise and denoise)
    image = ddpm().images[0]
    # save image
    #不修改格式
    #image.save(os.path.join(img_path,f'{i}.png'))
    #改成单通道
    image.convert('L').save(os.path.join(img_path,f'{i}.png'))
    #看看跑到哪里了
    if i%10==0:print(f"i={i}")

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
对于OLS回归模型的初学者,以下是一些学习介绍的主要内容: 1. OLS回归模型:OLS回归模型是最常用的线性回归模型之一。它基于最小二乘法,通过拟合一个线性方程来建立自变量和因变量之间的关系。 2. 模型参数:通过使用OLS模型对象的`model.params`属性,可以提取回归模型的系数,即自变量的权重。这些参数表示自变量对因变量的影响程度。 3. 模型拟合:使用OLS模型对象的`.fit()`方法对数据进行回归拟合。该方法对输入的自变量和因变量执行线性回归计算,并返回一个`RegressionResultsWrapper`对象,包含了拟合结果的摘要。 4. 拟合结果摘要:通过调用拟合结果对象的不同属性,可以获取模型的各种统计信息。例如,`model.bse`提供了回归系数的标准误差,`model.pvalues`提供了回归系数的p值,`model.tvalues`提供了回归系数的t值等等。 5. 模型预测:使用拟合结果对象的`model.fittedvalues`属性,可以获取模型对样本数据的预测值。这些预测值表示模型对未知样本的预测结果。 6. 残差分析:通过使用拟合结果对象的`model.resid`属性,可以获取模型的残差。残差是实际观测值与模型预测值之间的差异,用于评估模型的拟合效果。 7. 模型评估:可以使用拟合结果对象的其他属性和方法来评估模型的好坏。例如,可以使用`model.summary()`方法来获取模型的详细摘要,包括R-squared值、调整R-squared值、F统计量等等。 要开始学习OLS回归模型,可以使用Python中的`statsmodels`库。通过创建一个OLS模型对象,并使用适当的自变量和因变量数据进行拟合,可以开始研究和分析回归模型的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [OLS回归分析原理实战及结果解析-python3](https://blog.csdn.net/qq_30868737/article/details/109164548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python Statsmodels 统计包之 OLS 回归](https://blog.csdn.net/weixin_39826089/article/details/111558740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值