修饰器@特定函数
把一个函数变成变量可以传递给特定的函数
class里的@property:
把class里的方法变成属性,或者是说一种可以执行的属性。光用@property,该属性变成可读,或者可执行。再增加@方法名.setter,可以扩展可写入的属性。
json文件可以用import json读取,读出来的是一堆字典,要什么参数就找什么Key。
import __import__和importlib.import_module(‘modulepath’)的区别
import不用指定导入模块在当前程序里叫什么
__import__要指定新名字,类似import as。
importlib可以在一个用到导入模块,但是有条件选择模块的地方应用,根据情况导入,利用了输入不同的‘module path’
__import__是最底层的,importlib有很多module相关的扩展功能,类似查看是否有一个第三方包
一个神经网络模型要包含的内容
main文件,包括了argparse, main(设置设备,读模型,读数据集), train(设置断续,读存weight,)
神经网络模型文件
参数文件
tqdm用于进度条展示
池化层如何反向传播:
max pooling: 记录向前传播最大值的位置,反向传播时把梯度返回给最大值位置的像素,别的位置为0
mean pooling: 反向传播是把梯度除上pooling size传递给上一层所有像素相等的值。
训练是GPU显存要占用多少怎么算:
首先算出整个网络的参数量,乘上存储数据类型所占用的内存大小,如单精度浮点4byte,再乘上优化器参数的个数(梯度,动量等)。
加上每一层网络结构输出的数据数量,加上数据和参数关系的记录,乘上batch size。