1.迁移学习

做图像识别是不是每次都意味着要自定义模型,确定好 卷积层池化层 和 全连接层,然后从0开始训练?不同类型的图像数据集会不会有通用的特征?如果训练样本比较少怎么办?是不是可以把已经训练好的模型,拿过来稍微改改就可以使用的?

迁移学习(Transfer Learning) 就是这种可以将已有模型的知识迁移到新任务的学习方法,具有以下特点:

  • 适合数据量比较少的任务,但是有预训练知识,无需从头训练深度神经网络
  • 更快的训练速度和更少的资源消耗
  • 避免过拟合,训练效果更好,预训练的模型已经在大数据集上学到了通用特征(如边缘、形状、颜色)
阅读全文 »

前文 利用神经网络实现手写字体识别 中构建的模型只单单使用了全连接层, 其中每一层的神经元都会与前一层的所有神经元相连接,这种结构其实更适合于结构化数据或一维数据。而像手写字体识别之类的图像结构数据,使用卷积神经网络其实会更合适一点,一方面通过卷积层可以提取局部特征,另一方面经过池化层还能减少参数量,提高处理效率。

1.卷积神经网络

卷积神经网络(Convolutional Neural Network,简称CNN)是一种特别适合处理图像、视频、语音、文本等数据的神经网络结构,它通过模仿生物视觉系统的工作原理,利用 卷积层池化层全连接层 来提取数据中的空间特征,并通过训练来优化参数,这在计算机视觉任务中有着广泛应用。

1.基本原理

CNN的核心思想是“卷积”操作。简单来说,卷积是用一个小的矩阵(称为卷积核)在输入图像上滑动,通过和图像的局部区域进行逐点相乘并求和,提取出图像的局部特征。卷积操作通常会在多个卷积层次上进行,从而能够识别图像中的简单特征(如边缘、纹理)和复杂特征(如物体、面部等)。

阅读全文 »

回归任务:通过输入一些样本数据或者特征,经过多层神经网络,最后能得到一个预测值。

1.气温数据处理

1.数据加载

1
2
3
4
5
6
7
def load_csv():  
path = Path("data")
filename = "temps.csv"
return pd.read_csv(path / filename)

print(f"shape:{features.shape}\n columns:{features.columns}")
print(features[:5]) # 打印前5条数据
阅读全文 »

本文主要是讲如何使用 PyTorch 实现手写数字识别,包括MNIST数据集加载处理、神经网络模型定义、训练并评估模型。

1.Mnist数据集

Mnist数据集是美国国家标准与技术研究院收集的关于手写数字扫描图像及其对应识别数字的数据集。该数据集分为两部分:
第一部分包含60000幅28x28大小的灰度图及对应识别数字,用作训练数据,这些图像扫描自250个人的手写样本。
第二部分包含10000幅28x28大小的灰度图及对应识别数字,用作测试数据,为了保证测试结果,这些图像来自另外一批人。

阅读全文 »
0%