集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

业界新闻

当前位置:首页 > >业界新闻 > >

人工智能AI培训_keras快速入门

发布时间: 2019-08-25 14:02:06

  人工智能AI培训_keras快速入门

  1.keras概述
  Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化
  Keras在代码结构上由面向对象方法编写,完全模块化并具有可扩展性,其运行机制和说明文档有将用户体验和使用难度纳入考虑,并试图简化复杂算法的实现难度 。Keras支持现代人工智能领域的主流算法,包括前馈结构和递归结构的神经网络,也可以通过封装参与构建统计学习模型。在硬件和开发环境方面,Keras支持多操作系统下的多GPU并行计算,可以根据后台设置转化为Tensorflow、Microsoft-CNTK等系统下的组件。
  Keras的主要开发者是谷歌工程师Francois Chollet,此外其GitHub项目页面包含6名主要维护者和超过800名直接贡献者 。Keras在其正式版本公开后,除部分预编译模型外,按MIT许可证开放源代码。

  2.keras优势
  Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产,具有以下三个主要优势:
  方便用户使用
  Keras 具有针对常见用例做出优化的简单而一致的界面。它可针对用户错误提供切实可行的清晰反馈。
  模块化和可组合
  将可配置的构造块连接在一起就可以构建 Keras 模型,并且几乎不受限制。
  易于扩展
  可以编写自定义构造块以表达新的研究创意,并且可以创建新层、损失函数并开发先进的模型。
  3.Keras常用接口
    tf.keras:
    Datasets
    Estimator
    Layers
  ​  Losses
  ​  Metrics
  ​  Preprocessing
  ​  Optimizers
  3.1.tf.keras.datasets
  keras中内置的数据集,例如:boston_housing, mnist, cifar10。
  3.2.tf.keras.estimator:
  一种极大地简化机器学习编程的高阶TensorFlow API,Estimator会封装的操作有:训练、评估、预测、导出。主要功能是model_to_estimator: Estimator根据给定的Keras模型构造一个实例:
  tf.keras.estimator.model_to_estimator()
  3.3.tf.keras.layers
  网络层封装了变量和作用其上的操作。比如(全连接层)对输入进行一个加权求和的操作,并且可以作用一个可选择的激活函数。连接的权重和偏置都由网络层对象来管理。
  3.4.tf.keras.losses
  内置损耗功能。包括计算标签与预测之间的二进制交叉熵损失、误差平方的损失、绝对百分比误差等等。
  3.5.tf.keras.metrics
  内置指标。主要包括的类有方法有:mean, Accuracy, Recall等。

  keras数据预处理工具。
  3.7.tf.keras.optimizers
  内置优化器类。 包含Adam, Adadelta, SGD等优化器类。

  4.快速入门
import tensorflow as tf
#tensorflow2.0 使用keras一般通过tensorflow.keras来使用,但是pycharm没有提示,原因是因为实际的keras路径放在tensorflow/python/keras,但是在程序中tensorflow有没有python这个目录,解决方法如下
try:
    import tensorflow.keras as keras
except:
    import tensorflow.python.keras as keras
#这样pycharm既可以有提示,同时也不需要在程序运行的时候修改代码了。非常完美的解决手段,当然如果你不适用ide就不需要这些东西了。
# print(tf.__version__)
# print(keras.__version__)
import numpy as np
# 在Keras中,您可以组装图层来构建模型。 模型(通常)是图层图。 最常见的模型类型是一堆层:tf.keras.Sequential 模型。构建一个简单的全连接网络(即多层感知器):
#构建好模型后,通过调用 compile 方法配置该模型的学习流程:
model = keras.Sequential()
# Dense函数参数
#     units: 正整数,输出空间维度。
#     activation: 激活函数 (详见 activations)。 若不指定,则不使用激活函数 (即,「线性」激活: a(x) = x)。
#     use_bias: 布尔值,该层是否使用偏置向量。
#     kernel_initializer: kernel 权值矩阵的初始化器 (详见 initializers)。
#     bias_initializer: 偏置向量的初始化器 (see initializers).
#     kernel_regularizer: 运用到 kernel 权值矩阵的正则化函数 (详见 regularizer)。
#     bias_regularizer: 运用到偏置向的的正则化函数 (详见 regularizer)。
#     activity_regularizer: 运用到层的输出的正则化函数 (它的 "activation")。 (详见 regularizer)。
#     kernel_constraint: 运用到 kernel 权值矩阵的约束函数 (详见 constraints)。
#     bias_constraint: 运用到偏置向量的约束函数 (详见 constraints)。
model.add(keras.layers.Dense(32, activation='relu'))
model.add(keras.layers.Dense(32, activation='relu'))
model.add(keras.layers.Dense(10, activation='softmax'))
model.compile(optimizer=keras.optimizers.Adam(0.001),
             loss=keras.losses.categorical_crossentropy,
             metrics=[keras.metrics.categorical_accuracy])
#输入numpy数据
# 对于小的数据集,可以直接使用 NumPy 格式的数据进行训练、评估模型。模型使用 fit 方法训练数据:
# tf.keras.Model.fit 有三个重要的参数:
# •    epochs:训练多少轮。(小批量)
# •    batch_size:当传递NumPy数据时,模型将数据分成较小的批次,并在训练期间迭代这些批次。 此整数指定每个批次的大小。 请注意,如果样本总数不能被批量大小整除,则最后一批可能会更小。
# •    validation_data:在对模型进行原型设计时,您希望轻松监控其在某些验证数据上的性能。 传递这个参数 - 输入和标签的元组 - 允许模型在每个epoch的末尾以传递数据的推理模式显示损失和度量。
train_x = np.random.random((1000, 72))
train_y = np.random.random((1000, 10))
val_x = np.random.random((200, 72))
val_y = np.random.random((200, 10))
model.fit(train_x, train_y, epochs=10, batch_size=100,validation_data=(val_x, val_y))
print(train_x)
print(train_y)
#tf.data输入数据
# 使用数据集API可扩展到大型数据集或多设备培训。 将tf.data.Dataset实例传递给fit方法。使用 Datasets API 可扩展到大型数据集或多设备训练
dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))
dataset = dataset.batch(32)
dataset = dataset.repeat()
val_dataset = tf.data.Dataset.from_tensor_slices((val_x, val_y))
val_dataset = val_dataset.batch(32)
val_dataset = val_dataset.repeat()
model.fit(dataset, epochs=10, steps_per_epoch=30,
          validation_data=val_dataset, validation_steps=3)
#评估与预测
test_x = np.random.random((1000, 72))
test_y = np.random.random((1000, 10))
model.evaluate(test_x, test_y, batch_size=32)
test_data = tf.data.Dataset.from_tensor_slices((test_x, test_y))
test_data = test_data.batch(32).repeat()
model.evaluate(test_data, steps=30)
# predict
result = model.predict(test_x, batch_size=32)
print(result)

上一篇: 大数据培训_容量调度器的介绍

下一篇: Python培训_Python自动化运维之Saltstack YAML

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!