zoukankan      html  css  js  c++  java
  • Tensorflow学习笔记No.1

    使用tf.keras.Sequential()建立网络模型

    整个过程可分为五步:
    1创建Sequential模型,2添加所需要的神经层,3使用.compile方法确定模型训练结构,4使用.fit方法

    使模型与训练数据“拟合”,5.predict方法进行预测。

    1.建立Sequential模型

    导入tensorflow模块,使用keras中的Sequential模型

    import tensorflow as tf
    model = tf.keras.Sequential()

    keras.Senquential()模型是一个顺序堆叠模型,可以在模型中依次添加所需要的神经层

    2.添加神经层

    使用model.add()方法可以向建立好的模型中添加需要的神经层

    首先是输入层

    1 model.add(tf.keras.layers.Flatten(input_shape = (28, 28)))#输入的数据为 28*28的二维数据

    Flatten是常用的输入层,可以把输入的多维数据展开成一维,便于输入到神经网络中

    input_shape参数是以元组的形式输入数据的维度

    然后是添加中间层,这里只介绍简单的几种中间层

    Dense:全连接神经网络层

    Dropout:对于神经网络单元,按照一定的概率将其暂时从网络中丢弃

    1 model.add(tf.keras.layers.Dense(128, activation = "relu"))
    2 model.add(tf.keras.layers.Dropout(0.5))

    Dense中的第一个参数是只隐藏单元的数量,隐藏单元越多,神经网络就越复杂,activation参数是Dense层的激活函数。

    Dropout是按照一定概率随机丢弃一些隐藏单元,避免隐藏单元之间出现过强的依赖性造成过拟合,Dropout层可以有效抑制过拟合,参数是随机丢弃隐藏单元的概率。

    最后是添加分类器。

    分类器也是一个中间层,激活函数选用某些用于分类的函数。

    softmax就是一个常用的分类器。

    1 model.add(keras.layers.Dense(10, activation='softmax'))

    这里添加了一个softmax分类器,第一个参数是分类的类别,这是一个10分类的分类器。

    3.使用.compile()方法确定模型训练流程

    1 model.compile(optimizer = 'adam', #梯度下降
    2               loss = 'sparse_categorical_crossentropy', #损失函数
    3               metrics = ['acc'] #正确率
    4              )

    optimizer参数是选择模型梯度下降的传递优化器实例,也可以通过下面这种方式自定义优化器中的学习率。

    1 optimizer = tf.keras.optimizers.Adam(learning_rate = 0.001)

    loss参数是选择计算模型误差的损失函数,常见的有均方差‘mse’和'sparse_categorical_crossentropy'等。

    metrics用于监视训练,它们是 tf.keras.metrics模块中的字符串名称或可调用对象。

    4.使用.fit()方法训练模型

    model.fit(train_image, train_label, epochs = 10,batch_size = 32,
              validation_data = (test_image, test_label) 
              #显示测试集在训练中的测试情况
              )

    最开始的两个参数是训练数据和数据的标签。

    epochs是迭代次数,也就是 对这些数据反复训练的次数。

    batch_size每次迭代输入的数据数量。

    validation_data监视迭代过程中在验证集上达到的效果。

    5.评估和预测

    1 model.evaluate(test_image, test_label)

    使用.evaluate()方法对测试集进行评估。

    1 model.predict(test_image[0])

    使用.predict()方法对数据进行预测,返回一个预测的结果。

  • 相关阅读:
    从BATS交易所获取空头头寸
    用cython提升python的性能
    用Python编写的第一个回测程序
    Omi框架学习之旅
    Omi框架学习之旅
    AlloyTouch.js 源码 学习笔记及原理说明
    AlloyFinger.js 源码 学习笔记及原理说明
    Git 学习笔记
    从数组中每次取一个不同的数组成员 getRandomItem(arr)
    move.js 源码 学习笔记
  • 原文地址:https://www.cnblogs.com/VioletOrz/p/13770380.html
Copyright © 2011-2022 走看看