pytorch学习笔记(二)

pytorch中的所有网络都叫做类,子类化.nn模块,实现-init-和method,在-init-模块中,初始化网络层,在forword模块中,输入数据,返回输出结果。父类作为参数传递到参数名中,-init-是构造函数。super将子类中的参数传递到父类中。
基于你要解决的问题确定你的最后一层。

  • 回归问题,使用线性层,比如预测一件衣服的价格
  • 分类问题,使用sigmod激活函数,比如要分辨是不是某件东西,输出为0或1,也叫二分类问题
  • 多分类问题,使用softmax层作为神经网络的结尾,输出为对应的概率。
    优化器接收一个scala值,损失函数生成一个scala值,有的问题中需要多个损失函数
    对于回归问题,最常使用的MSE损失函数
    对于分类问题,使用交叉熵损失函数(cross-entropy loss) ,他计算分类网络的损失预测概率,加起来应该等于1,当预测概率偏离正确概率时,交叉熵会增加.
    其他的一些损失函数:L1 loss:主要作用于正则化器
    NLL:用于分类问题,允许使用特定的权重解决数据集不平衡的问题
    NLLloss2d:用于像素分类,主要针对与图像分割相关的问题
    一旦计算了损失函数的值,就要优化参数减小loss值提高算法的准确率,把优化器看作一个放着损失函数和优化参数的黑盒子,下面时pytorch提供的一些优化函数:
  • ADADELTA
  • Adagrad
  • Adam
  • SparseAdam
  • Adamax
  • ASGD
  • LBFGS
  • RMSProp
  • Rprop
  • SGD

你可能感兴趣的:(pytorch学习笔记(二))