zoukankan      html  css  js  c++  java
  • 深度学习框架Keras

    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)

      训练结果展示:


  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/wisteria68/p/10844422.html
Copyright © 2011-2022 走看看