Q1:epochs, iterations, batch_size是什么意思?
【Pytorch学习笔记-epochs, iterations, batch_size解释】传送门【https://zhuanlan.zhihu.com/p/362536902】
Q2:batch size与LR(学习率之间的关系)?
【Batch Size & Learning Rate】传送门【https://www.pianshen.com/article/12281459547/】
Q3:batch size大小对结果的影响?
经过实践发现,batch_size的大小和结果关系不大,只是占用显存和运算速度大小不同。
Q4:argparse.ArgumentParser()是什么东西?
【argparse.ArgumentParser()用法解析】传送门【https://blog.csdn.net/lizhiyuanbest/article/details/104975848】
主要有三个步骤:
- 创建 ArgumentParser() 对象
- 调用 add_argument() 方法添加参数
- 使用 parse_args() 解析添加的参数
Q5:An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
报错:
在jupyter notebook下运行pytorch代码,发现如下错误
opt = parser.parse_args(args=[])
按如下修改,即可
Q5:tensor张量与numpy数组的转换代码
X_train = torch.from_numpy(X_train.to_numpy()).float() # 数组
y_train = torch.squeeze(torch.from_numpy(y_train.to_numpy()).float()) # 序列
Q6:它的训练流程基本流程
- 定义包含一些可学习参数(或者叫权重)的神经网络
- 在输入数据集上迭代
- 通过网络处理输入
- 计算loss(输出和正确答案的距离)
- 将梯度反向传播给网络的参数
- 更新网络的权重,一般使用一个简单的规则:
weight = weight - learning_rate * gradient
Q7:nn.Module的解释
可以使用torch.nn包来构建神经网络。即使用 PyTorch 构建神经网络的一种简单方法是创建一个继承自 torch.nn.Module 的类。
这里将nn.Module子类化(它本身是一个类并且能够跟踪状态)。在这种情况下,我们要创建一个类,该类包含前进步骤的权重,偏差和方法。nn.Module具有许多我们将要使用的属性和方法(例如.parameters()和.zero_grad())。
Q8:torch.nn.Sequential、torch.nn.Linear、torch.nn.RelU
【PyTorch 笔记(16)— torch.nn.Sequential、torch.nn.Linear、torch.nn.RelU】传送门https://blog.csdn.net/wohu1104/article/details/107646744
Q9:常见的损失函数Loss Function
【Pytorch里的CrossEntropyLoss详解】传送门【https://www.cnblogs.com/marsggbo/p/10401215.html】
Q10:常见的优化器
【PyTorch常见的优化器】传送门【https://blog.csdn.net/CharmsLUO/article/details/109853517】
Q11:pytorch两个基本对象:Tensor(张量)和Variable(变量)
【pytorch两个基本对象:Tensor(张量)和Variable(变量)】传送门【https://blog.csdn.net/mr_zhuo_/article/details/108132061】
Q12:无法加载到GPU进行计算
报错如下
RuntimeError: Tensor for 'out' is on cpu, Tensor for argument #1 'self' is on cpu, but expected them to be on GPU
# Initialize generator and discriminator
generator = Generator().to('cuda')
discriminator = Discriminator().to('cuda')