Python深度学习笔记(二)神经网络
学习深度学习过程中的笔记和大家分享。
神经网络
训练神经网络主要围绕这四个方面:
1,层:神经网络的基本数据结构是层,它是一个数据处理模块,将输入张量转换成输出张量。不同的张量格式与不同的数据处理类型需要用到不同的层。简单的向量数据保存在(sample,features)的2D张量中,通常用全连接层(对应keras中Dense类)。序列数据保存在形状为(sample,timesteps,features)的3D张量中,通常用循环层(对应于keras的LSTM层)来处理。图像数据保存在4D张量中,通常用二维卷积层(对应于keras的Conv2D)来处理。
from keras import layers
layer = layers.Dense(32,input_shape=(784,))
这里我们创建了一个层,可以看到该层只接受第一个维度大小为784的2D张量(第0轴是批量维度,其大小没有指定)的输入。输出的张量的第一维度变成了32。当然,我们构建网络时不是只建一层,接下来还有很多层,那么接下来的层的输入张量的维度该如何确定呢?其实不用担心,使用keras时,第一层输出的张量第一维是32,那么第二层输入张量自动与其匹配,也是第一维为32。向模型中添加的层都会自动匹配输入层的形状。
2,输入数据和对应的目标:我们需要对数据进行划分