当前位置:   article > 正文

使用keras六步搭建神经网络_使用tensorflow中的keras模块作为神经网络框架

使用tensorflow中的keras模块作为神经网络框架

1 keras介绍

        tf.keras是tensorflow2引入的高封装都得框架,可以用于快速搭建神经网络。

1.1通过阅读源码和注释得方法学习API

1.1.1在pycharm集成开发环境中查看框架源码

将鼠标放在函数上按住Ctrl键,根据源码和注释了解函数得实现方法。

1.1.2在tensorflow官网中查询函数文档

2 tf.keras搭建神经网络六步法

第一步:import相关模块。

  1. # import工具包
  2. import tensorflow as tf
  3. from sklearn import datasets
  4. import numpy as np

 第二步:指定输入网络得训练集和测试集。

  1. # train test
  2. x_train = datasets.load_iris().data
  3. y_train = datasets.load_iris().target

 第三步:逐层搭建网络结构。

  1. # models.Sequential
  2. model = tf.keras.models.Sequential([
  3. tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer = tf.keras.regularizers.l2())
  4. ])

第四步:在model.compile()中配置训练方法,选择训练时使用得优化器、损失函数和最终评价指标。

  1. # model.compile
  2. model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
  3. loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
  4. metrics=['sparse_categorical_accuracy']
  5. )

第五步:在model.fit()中执行训练过程,告知训练集和测试集得输入值和标签、每个batch大小(batchsize)和数据集的迭代次数(epoch)。

  1. #model.fit
  2. model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)

第六步:使用model.summary()打印网络结构,统计参数数目。

  1. #model.summary
  2. model.summary()

3 函数的用法介绍

tf.kera.models.Sequential()

        Sequential函数是一个容器,描述了神经网络的网络结构,在Sequential函数的输入参数中描述从输入层到输出层的网络结构。

如:

  1. import tensorflow as tf
  2. from tensorflow.keras.layers import Dense,Flatten
  3. from tensorflow.keras import Model
  4. model = tf.keras.models.Sequential([
  5. # 拉直层:拉直层可以变换张量的尺寸,把输入特征拉直为一维数组,是不含计算参数的层。
  6. tf.keras.layers.Flatten()
  7. # 全连接层
  8. tf.keras.layers.Dense(神经元个数,activation="激活函数",keras.regularizers="正则化方式"
  9. # 其中
  10. activation可选:relu、softmax、sigmoid、tanh等
  11. keras_regularizer可选tf.keras.regularizers.l1()、tf.keras.regularizers.l2()
  12. # 卷积层
  13. tf.keras.layers.Conv2D(filters=卷积核个数, kernel_size=卷积核尺寸,strides=卷积步长, padding="valid" or "same")
  14. # LSTM层
  15. tf.keras.layers.LSTM()
  16. ])
  17. # Compile用于配置神经网络的训练方法,告知训练过程中使用的优化器、损失函数、准确率评测标准。
  18. model.compile(optimizer=优化器,loss=损失函数, metrics=["准确率"])
  19. # 1.优化器可以是字符串形式给出优化器名称,也可以是函数形式。使用函数形式可以设置学习率、动量和超参数。
  20. 'sgd' or tf.optimizers.SGD(lr=学习率, decay=学习率衰减率,momentum=动量参数)
  21. 'adagrad' or tf.keras.optimizers.Adagrad(lr=学习率, decay=学习率衰减率)
  22. 'adadelta' or tf.keras.optimizers.Adadelta(lr=学习率, decay=学习率衰减率)
  23. 'adam' or tf.keras.optimizers.Adam(lr=学习率, decay=学习率衰减率)
  24. # 2.loss可以是字符串形式给出优化器名称,也可以是函数形式。
  25. 'mse' or tf.keras.losses.MeanSquaredError()
  26. 'sparse_categorical_crossentropy' or tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
  27. #loss常需要经过softmax等函数将输出转化为概率分布的形式。from_logits则用来标注该损失函数是否需要转换为概率的形式,
  28. # 取False时表示转化为概率分布,取True时表示没有转化为概率分布,直接输出。
  29. # 3.Metrics标注网络评测指标
  30. 'accuracy': y_ 和 y 都是数值,如 y_=[1] y=[1]
  31. 'categorical_accuracy': y_ 和 y都是以独热码和概率分布表示。 y_=[0,1] y=[0.4,0.6]
  32. 'sparse_categorical_accuracy': y_ 是以数值形式给出,y 是以独热码形式给出。 y_=[1],y=[0.4,0.6]
  33. # model.fit用于执行训练过程
  34. model.fit(
  35. 训练的输入特征,训练集标签,batch_size,epochs,
  36. validation_data = (测试集的输入特征,测试集的标签),
  37. validation_split = 从测试集划分多少比例给训练集,
  38. validation_freq = 测试的epoch间隔次数
  39. )
  40. #summary函数用于打印网络结构和参数统计
  41. model.summary()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/133690
推荐阅读
相关标签
  

闽ICP备14008679号