Tensorflow_Python——神经网络八股(keras 快速生成全连接神经网络)

目录

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

1.导入

import tensorflow as tf

2.预处理数据集

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

3.配置网络结构

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

函数生成

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

常用的网络结构有:

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

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

全连接层:

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

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

二维卷积层:

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

循环网络层:

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

官方API文档链接

类生成

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

model = MyModel()

4.配置优化器

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

优化器(参数更新的工具)可选:
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 任选其一

6.展示

model.summary()

展示神经网络结构
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()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值