基本概念
1、tensorflow是keras的后端
2、tensor是张量,是向量和矩阵的推广。张量的阶数或维度称为轴(axis)
import numpy as np
a = np.array([[1,2],[3,4]])
sum1 = np.sum(a,axis=0) # axis=0代表按行计算
sum2 = np.sum(a,axis=1) # axis=1代表按列计算
print(sum1)
print(sum2)
output:
[4 6]
[3 7]
3、在tensorflow中表示1000张32*32的彩色图片用四维张量(1000,32,32,3)来表示,把通道数放在最后,由于是彩色图像,有RGB三个通道。
4、在keras中有两种模型 ①:序贯模型Sequential,单输入单输出层与层之间只有相邻关系,没有连接关系,编译速度较快。②:图模型Graph,支持多输入多输出,各个层之间可以任意连接,但编译速度较慢。
5、深度学习的优化算法是梯度下降算法,使用batch_size可以把数据分为若干个批,按批来更新参数。也可避免一次送入网络数据过多,引起内存爆炸。
6、序贯模型Sequential,第一层需要接收一个关于输入数据shape的参量
搭建模型
例:
from keras.models import Sequential
from keras.layers import Dense,Activation
model = Sequential()
model.add(Dense(16,input_dim=32))
model.add(Activation('relu'))
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 64) 8256
_________________________________________________________________
activation (Activation) (None, 64) 0
=================================================================
Total params: 8,256
Trainable params: 8,256
Non-trainable params: 0
_________________________________________________________________
模型的配置
在训练模型之前,需要用compile来进行配置。
compile接受三个参数 (1)优化器optimizer (2)损失函数loss (3)指标列表metrics
模型的训练
model.fit
执行训练过程,告知训练集和测试集的输入特征和标签,告知batch
model.fit(训练集的输入特征,训练集的标签,
batch_size= , epochs= ,
validation_data=(测试集的输入特征,测试集的标签),
validation_split=从训练集划分多少比例给测试集,
validation_freq=多少次epoch迭代用测试集测试一次结果)
epochs是指把所有的数据训练多少遍
模型的保存
可以使用model.save(filepath)的方法将keras的模型和权重保存在一个文件中。可以使用model.load_model(filepath)来实例化模型。
from keras.models import load_model
model.save('my_model.h5') # creates a HDF5 file 'my_model.h5'
del model # deletes the existing model
# returns a compiled model
# identical to the previous one
model = load_model('my_model.h5')