用 TensorFlow API:tf.keras 搭建网络八股

用 TensorFlow API:tf.keras 搭建网络八股

六步法

  1. import
    导入相关模块
  2. train, test
    指定训练集的输入特征 x_train 和训练集的标签 y_train,以及测试集的输入特征 x_test 和测试集的标签 y_test
  3. model = tf.keras.models.Sequential
    在 Sequential() 中搭建网络结构,逐层描述每层网络,相当于走了一遍前向传播
  4. model.compile
    在 compile() 中配置训练方法,告知训练时使用哪种优化器,选择哪个损失函数,选择哪种评测指标
  5. model.fit
    在 fit() 中执行训练过程,告知训练集和测试集的输入特征和标签,告知每个 batch 是多少,告知要迭代多少次数据集
  6. model.summary
    用 summary() 打印出网络的结构和参数统计

Sequential()

model = tf.keras.models.Sequential([网络结构]) # 描述各层网络

网络结构举例:

  • 拉直层:tf.keras.layers.Flatten()
  • 全连接层:tf.keras.layers.Dense(神经元个数, activation="激活函数", kernal_size()=卷积核尺寸, strides=卷积步长, padding="valid" or "same")
    activation(字符串给出)可选:relu、softmax、sigmoid、tanh
    kernal_regularizer 可选:tf.keras.regularizers.l1()、tf.keras.regularizers.l2()
  • LSTM层:tf.keras.layers.LSTM()

model.compile(optimizer=“优化器”, loss=损失函数, metrics=[“准确率”])

optimizer 可选:

  • ‘sgd’ or tf.keras.optimizers.SGD(lr=学习率, momentum=动量参数)
  • ‘adagrad’ or tf.keras.optimizers.Adagrad(lr=学习率)
  • ‘adadelta’ or tf.keras.optimizers.Adadelta(lr=学习率)
  • ‘adam’ or tf.keras.optimizers.Adam(lr=学习率, beta_1=0.9, beta_2=0.999)

loss 可选:

  • ‘mse’ or tf.keras.losses.MeanSquaredError()
  • ‘sparse_categorical_crossentropy’ or tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)

metrics(网络评测指标) 可选:

  • ‘accuracy’: y_ 和 y 都是数值,如 y_=[1], y=[1]
  • ‘categorical_accuracy’: y_ 和 y 都是独热码(概率分布),如 y_=[0,1,0], y=[0.256,0.695,0.048]
  • ‘sparse_categorical_accuracy’: y_ 是数值,y 是独热码(概率分布),如 y_ = [1], y=[0.256,0.695,0.048]

model.fit(训练集的输入特征, 训练集的标签, batch_size= , epochs= , validation_data=(), validation_split=从训练集划分多少比例给测试集, validation_freq=多少次 epoch 测试一次)

model.summary() 可以打印出网络的结构和参数统计

你可能感兴趣的:(算法之路,深度学习,深度学习)