python PyTorch 用matmul写python矩阵相乘乘函数时,怎么让函数可以广播?

简单的PyTorch教程来自官网教程 、 和 。

PyTorch是一个基于 的科学计算包它主要有两个用途:

  • 类似Numpy但是能利用GPU加速
  • 一个非常灵活和快速的用于深度学习的研究平台

下面的代码构造一個$5 \times 3$的未初始化的矩阵:

我们来显示几张图片看看,是一个batch的图片显示的代码如下:

# 把batch张图片拼接成一个大图

现在我们来实现一个用于训練模型的通用函数。这里我们会演示怎么实现:

# 每个epoch都分为训练和验证阶段 # 只有训练的时候track用于梯度计算的历史信息 # 如果是训练,那么需要backward和更新参数 # 保存验证集上的最佳模型

我们首先加载一个预训练的模型(imagenet上的resnet)因为我们的类别数和imagenet不同,所以我们需要删掉原来的全连接层换成新的全连接层。这里我们让所有的模型参数都可以调整包括新加的全连接层和预训练的层。

# 所有的参数都可以训练

最终我们嘚到的分类准确率大概在94.7%

我们用可以固定住前面层的参数,只训练最后一层这比之前要快将近一倍,因为反向计算梯度只需要计算最後一层但是前向计算的时间是一样的。

# 值训练最后一个全连接层

最终我们得到的分类准确率大概在96%。

}

我要回帖

更多关于 python矩阵相乘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信