·人工智能与深度学习
-人工智能={机器学习,........else}
-机器学习={深度学习(表示学习),........else}
·神经网络
·卷积神经网络(Convolutional Neural Networks)CNN
-包含卷积层的神经网络、擅长处理图像
-常见网络 LeNet 、 AlexNet 、 VGG16 、 GoogleNet 、 ResNet
·循环神经网络(Recurrent Neural Network)RNN
-为处理时序数据而设计的,例如一段文字或语音
-常见网络:长短期记忆(long short-term menory,LSTM)
tensorflow 的一些常用代码理解
Convolution - 卷积层
Average pooling 平均池化 (也可以最大值池化)
full connection 全连接层
核心步骤一——卷积
核心步骤二——池化(下采样)
核心步骤三——激活函数
七层模型:
1、第一层卷积层
·卷积后的大小 32-5+1=28
2、第二层池化层
3、第三层二次卷积
4、第四次二次池化
5、第五层全连接卷积层
6、第六层全连接层
7、第七层全连接层(输出层)
tensorflow模型类:model类使用例程网站
·如何实例化一个模型
model.summary() #模型展示
tensorflow模型类:sequencial类使用例程网站
lenet第二层:tensorflow池化类
padding的两种方法,valid代表去除多余的列,same代表补齐
lenet第三层和第四层:tensorflow卷积+池化层编码
lenet转化层:连接前面四层与后面全连接层的扁平化类
lenet第五层:全连接类
lenet第五六七层编码:
-这里最后一层使用softmax归一化函数
lenet各层编码:
lenet模型的训练设置
超参数设置
epoch:训练轮数
batch_size:批大小
learning_rate:学习率
深度学习中,主要调整以上参数
优化器:优化算法
adam_optimizer = tf.keras.optimizers.Adam(learning_rate)
编译模型
model.compile(optimizer=adam_optimizer, loss=tf.keras.losses.sparse_categorical_crossentropy, metrics=['accuracy'])
训练模型
x, # 训练数据
y, # 训练数据的标签
batch_size, # 批大小
epochs # 训练遍数(轮数)
根据参数开始训练:model.fit(x=x_train, y=y_train, batch_size=batch_size, epochs=num_epochs)
保存模型
filepath, # 保存路径
from google.colab import drive drive.mount('/gdrive') #使用colab时的保存代码
model.save('/gdrive/My Drive/AI/model/lenet_model.h5')
加载模型
预测时需要加载保存好的模型
filepath, # 模型路径
model = tf.keras.models.load_model('/gdrive/My Drive/AI/model/lenet_model.h5')
预测模型
x, # 输入数据
pred = model.predict(x_test[image_index].reshape(1, 32, 32, 1)) #将测试集以四维结构输入,得到0-9的概率
print(pred.argmax())#打印最大概率的对应数字