对抗样本代码问题总结(持续更新~)

1、shuffle=True用于打乱数据集,每次都会以不同的顺序返回

2、data_clean() 数据清洗,排除一些无法输入的数据

3、pretrained=True远程获取已训练好的模型参数

4、item()取出单元素张量的元素值并返回该值,保持原元素类型不变。,即:原张量元素为整形,则返回整形,原张量元素为浮点型则返回浮点型

5、img = img.convert("RGB") 将4通道改为3通道

6、torch.tensor.detach():从计算图中分类,并返回一个新的张量,并且这个新的张量的requires_grad的属性为False。

torch.tensor.detach_():张量tensor会被从计算图中分离出来,并把它设置成叶子张量,并且这个分离出来的张量的requires_grad的属性为False。

7、Batch Size定义:一次训练所选取的样本数。

  1. 没有Batch Size,梯度准确,只适用于小样本数据库
  2. Batch Size=1,梯度变来变去,非常不准确,网络很难收敛。
  3. Batch Size增大,梯度变准确,
  4. Batch Size增大,梯度已经非常准确,再增加Batch Size也没有用

注意:Batch Size增大了,要到达相同的准确度,必须要增大epoch。

8、format函数是python中的格式化函数,可以对数字或者字符串进行格式化操作,使用{}来指定对应的参数,可以接受不限个参数,位置可以不按顺序。在{}中可以指定索引输出对应位置的字符串。

9、注意只有Image类型的图片才有save方法,tensor和numpy类型的自然是没有的。因为本文对于图片的操作都用PIL来实现,所以保存图片也用的此方法。同样的思想,还可以用opencv库来实现。

10、conda和pip有区别,可能绝大多数使用者感觉不到两者太大区别,但我仍然建议能用conda安装的优先使用conda,尽量使用conda的环境隔离功能,为不同的任务创建不同的环境。如果某个包conda没有,再使用pip安装。其实,对于绝大多数人,只要你不搞GPU计算、不依赖很多底层库,pip已经能够满足需求。但是我仍然推荐使用conda。

11、首先激活EDSR环境(专门为超分辨率新建的环境,输入conda activate EDSR),linux下运行.sh文件,进入到对应目录下,使用  ./+文件名运行。

12、genfromtxt将每个非空行拆分为一个字符串序列。刚刚跳过空行或注释行。delimiter关键字用于定义拆分应如何进行,单个字符标记列之间的间隔。例如,逗号分隔文件(CSV)使用逗号(,)或分号(;)作为分隔符

13、clamp 和 clamp_ 

没有下划线时不改变原来的对象,有下划线时会改变原来的对象

14、cv2.imwrite()第一个是要存图像的文件名,第二个是要保存的图像。

15、可以从to_tensor()函数看到,函数接受PIL Image或numpy.ndarray,将其先由HWC转置为CHW格式,再转为float后每个像素除以255.(等于进行了归一化)

16、Normalize:逐channel的对图像进行标准化(均值变为0,标准差变为1),可以加快模型的收敛(对图片处理不要进行Normalize会更好)

你可能感兴趣的:(深度学习,pytorch,神经网络)