深度学习框架Keras

时间:2022-09-28 16:32:36

Keras

  用于构建和训练深度学习模型的高级API。 它用于快速原型设计,高级研究和生产。

优势分析

  用户友好---易于操作
  模块化和可组合
  易于扩展---编写自定义构建块以表达研究的新想法。

使用步骤

1.导入模块

  import tensorflow as tf
  from tensorflow import keras
  keras在TensorFlow 里的实现。这是一个高级API,用于构建和训练模型,同时兼容 TensorFlow 的绝大部分功能。这使得 TensorFlow 更容易使用,且保持 TensorFlow 的灵活性和性能。
  保存模型的权重时,默认为 checkpoint 格式。 通过save_format ='h5'使用HDF5。

2.构建模型

(1)keras.Sequential()

  通过组装图层来构建模型。
  model = keras.Sequential()
  #嵌入层是把正整数(索引)转换为固定大小的稠密向量
  model.add(keras.layers.Embedding(10000, 16))
  # 加入平均池化层。经过池化后,(N, 70, 16) -> (N, 16)
  model.add(keras.layers.GlobalAveragePooling1D())
  # 加入全连接层。16为输出数量(神经元数量)。
  model.add(keras.layers.Dense(16, activation=tf.nn.relu))
  # 加入全连接层。1为输出数量(神经元数量)。
  model.add(keras.layers.Dense(1, activation=tf.nn.sigmoid))

(2)model.compile()

  # 编译模型,对模型训练进行相关的配置。
  model.compile(optimizer=tf.train.AdamOptimizer(), loss='binary_crossentropy', metrics=['accuracy'])

  三个重要参数:

  optimizer:训练过程的优化方法。此参数通过 tf.train 模块的优化方法的实例来指定,比如:AdamOptimizer, RMSPropOptimizer, GradientDescentOptimizer。
  loss:训练过程中使用的损失函数(通过最小化损失函数来训练模型)。 常见的选择包括:均方误差(mse),categorical_crossentropy和binary_crossentropy。 损失函数由名称或通过从tf.keras.losses模块传递可调用对象来指定。
  metrics:训练过程中,监测的指标。 指定方法:名称 或 可调用对象 from the tf.keras.metrics 模块。

(3)model.fit()

  # 进行模型训练。
  # epochs 训练的轮数,一个完整的训练集为一轮。
  # batch_size:批次的数量。
  # validation_data:指定验证集,模型在训练时,就可以使用该验证集进行验证。
  # verbose:指定训练集的信息显示。
  # fit 方法返回一个对象。该对象会保存每轮(epoch)训练后的正确率与损失值。
  history = model.fit(X_train, y_train, epochs=100, batch_size=512,validation_data=(X_test, y_test), verbose=1)

  训练结果展示:


深度学习框架Keras