tensorflow高级API:tf.keras
keras介绍:
1、keras是一个高层神经网络API,比较人性化,语言简洁
2、keras具有模块化的特点,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块
3、添加新模块超级容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。
搭建网络步骤:
1 import相关模块
2 train,test数据导入
并指定x_train,y_train,x_test,y_test。
3 搭建神经网络
model=tf.keras.models.Sequential([ 网络结构])逐层搭建神经网络,相当于走了一遍前向传播。
比如拉直层是:tf.keras.layers.Flatten()作用是把数据拉直成为一维列向量然后输入神经元第一层
全连接层(FC):tf.keras.layers.Dense(神经元个数,activation=‘激活函数’,kernel_regularizer=哪种正则化)
正则化的基本思想是惩罚大的权重,使得网络更加稳定
激活函数一般有:relu softmax sigmoid tanh
kernel_regularizer可选tf.keras.regularizers.l1(),tf.keras.regularizers.l2()
卷积层(CNN):tf.keras.layers.Conv2D(filters= 卷积层个数,kernel_size=卷积核尺寸,strides=卷积步长,padding=‘valid’ or ‘same’)
循环神经网络层(LSTM):tf.keras.layers.LSTM()
4 训练方法
model.compile配置训练方法,告知训练时选择哪种优化器,选择哪个损失函数,选择哪种评测标准
model.compile(optimizer=‘优化器’,loss=损失函数,metrics=[‘准确率’])
optimizer可选:
sgd
adagrad
adadelta
adam
loss可选:
mse
sparse_categorical_crossentropy(稀疏分类交叉熵)
Metrics(度量标准)可选:
accuracy
categorical_accuracy
sparse_categorical_accuracy:其中y_是数值,y是独热码(概率分布),如y_=[0,1,0] y=[0.1,0.6,0.3],这种用的比较多,以数值形式给出标签,以概率分布形式输出
5 一些超参数设置
model.fit告知训练集和测试集的输入特征和标签,告知每个batch是多少,epoch是多少
model.fit(训练集的输入特征,训练集的标签,batch_size=,epochs=,
validation_data=(测试集的输入特征,测试集的标签),
validation_split=从训练集划分多少比例给测试集,
validation_freq=多少次epch测试一次)
6 打印出网络的结构和参数统计
summary打印出网络的结构和参数统计
相当于一个可视化工具吧