当前位置:   article > 正文

Tensorflow_Python——神经网络八股(keras 快速生成全连接神经网络)_python图像处理八股

python图像处理八股

目录

1.导入包
2.预处理数据集
3.配置网络结构
4.配置优化器
5.训练
6.展示
7.拓展应用
8.实例代码

1.导入

import tensorflow as tf
  • 1

2.预处理数据集

输入的数据不可能完全符合我们的要求,所以要进行数据预处理
常用的处理有:随机选择数据集,图像格式处理,音频格式处理
转化为数组形式才可能被训练。
处理函数总结连接如下:

3.配置网络结构

有两种配置方法:
1.函数参数生成(简单网络,应用此种)
2.类生成(当网络复杂使,建议使用此种)

函数生成

model = tf.keras.models.Sequential([网络结构])
  • 1

常用的网络结构有:

拉直层:把输入特征拉直变成一维数组

tf.keras.layers.Flatten() # 拉直层
  • 1

全连接层:

tf.keras.layers.Dense(神经元个数, 
				      activation='激活函数', 
				      kernel_regularizer=正则化方法)# 全连接层
  • 1
  • 2
  • 3

激活函数可选: relu softmax sigmoid tanh
正则化方法可选:L1 L2
(各种激活函数与正则化分析(链接待补充))

二维卷积层:

tf.keras.layers.Conv2D(filters=卷积核个数, 
					   kernel_size=卷积核尺寸,
					   strides=卷积步长,
					   padding="valid"or"same")# 卷积神经网络层
  • 1
  • 2
  • 3
  • 4

循环网络层:

tf.keras.layers.LSTM()# 循环神经网络层
  • 1

官方API文档链接

类生成

calss MyModel(Model):
	def __init__(self):
		super(MyModel, self).__init__()
		定义网络结构
		
	def call(self, x):
		调用结构
		return y

model = MyModel()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.配置优化器

model.compile(optimizer=优化器, loss=损失函数, metrics=['准确率'])
  • 1

优化器(参数更新的工具)可选:
sgd adagrad adadelta adam字符串形式
或以函数形式给出(函数形式可以设置学习率和动量参数,不建议入门时使用)
详解:五种优化器的对比(链接待补充)

损失函数可选:
mse sparse_categorical_crossrntropy 字符串形式
或者以函数形式给出
详解:损失函数分析(链接待补充)

准确率可选:
accuracy 真实值与与测试都为数值
categorical_accuracy 都为独热码
sparse_categorical_accuracy 预测值独热码 真实值为数值

5.训练

model.fit(训练集输入特征, 训练集标签, 
			batch_size=每次喂入网络的大小, 
			epochs=训练次数,
			validation_data=(测试集输入特征, 测试集标签), 
			validation_split=从训练集划分给测试集的比例, 
			validation_freq=多少次epoch测试一次)
# validation_data与validation_split 任选其一
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

6.展示

model.summary()
  • 1

展示神经网络结构
7.

import tensorflow as tf

mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 构建网络 1.拉直 2.128个全连接层relu 3.10个输出层softmax
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
    ])
# 训练准备 adam优化器 损失函数 准确值
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])
# 训练 送入特征 batch大小 循环轮次 测试
model.fit(x_train, y_train, batch_size=128, epochs=5,
          validation_data=(x_test, y_test),validation_freq=1)
# 打印训练出的模型
model.summary()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/167827?site
推荐阅读
相关标签
  

闽ICP备14008679号