当前位置:网站首页>基于tensorflow搭建神经网络
基于tensorflow搭建神经网络
2022-07-28 05:22:00 【积雨辋川】
基于tensorflow搭建神经网络
一、tf.keras搭建神经网络步骤
六步法
- import
- train,test
- model = tf.keras.models.Sequential
- model.compile
- model.fit
- model.summary
models.Sequential()
model = tf.keras.models.Sequential ([ 网络结构 ]) #描述各层网络
网络结构举例:
- 拉直层:
tf.keras.layers.Flatten( )
- 全连接层:
tf.keras.layers.Dense(神经元个数, activation= “激活函数”,kernel_regularizer=哪种正则化)
activation(字符串给出)可选: relu、 softmax、 sigmoid 、 tanh
kernel_regularizer可选: tf.keras.regularizers.l1()、tf.keras.regularizers.l2()
- 卷积层:
tf.keras.layers.Conv2D(filters = 卷积核个数, kernel_size = 卷积核尺寸,strides = 卷积步长, padding = " valid" or “same”)
- LSTM层: tf.keras.layers.LSTM()
model.compile()
model.compile(optimizer = 优化器,
loss = 损失函数
metrics = [“准确率”] )
Optimizer可选:
‘sgd’ or tf.keras.optimizers.SGD (lr=学习率,momentum=动量参数)
‘adagrad’ or tf.keras.optimizers.Adagrad (lr=学习率)
‘adadelta’ or tf.keras.optimizers.Adadelta (lr=学习率)
‘adam’ or tf.keras.optimizers.Adam (lr=学习率, beta_1=0.9, beta_2=0.999)
loss可选:
‘mse’ or tf.keras.losses.MeanSquaredError()
‘sparse_categorical_crossentropy’ or tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
Metrics可选:
‘accuracy’ :y_和y都是数值,如y_=[1] y=[1]
‘categorical_accuracy’ :y_和y都是独热码(概率分布),如y_=[0,1,0] y=[0.256,0.695,0.048]
‘sparse_categorical_accuracy’ :y_是数值,y是独热码(概率分布),如y_=[1] y=[0.256,0.695,0.048]
model.fit()
model.fit (训练集的输入特征, 训练集的标签,
batch_size= , epochs= ,
validation_data=(验证集的输入特征,验证集的标签),
validation_split=从训练集划分多少比例给验证集,
validation_freq = 多少次epoch验证一次)
model.summary()

二、自定义Model
class MyModel(Model):
def __init__(self):
super(MyModel, self).__init__()
定义网络结构块
def call(self, x):
调用网络结构块,实现前向传播
return y
model = MyModel()
例:
class IrisModel(Model):
def __init__(self):
super(IrisModel, self).__init__()
self.d1 = Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2())
def call(self, x):
y = self.d1(x)
return y
model = IrisModel()
三、tf.keras实现手写数字分类
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1)
model.summary()
运行结果如下:
60000/60000 [==============================] - 5s 89us/sample - loss: 0.0455 - sparse_categorical_accuracy: 0.9861 - val_loss: 0.0806 - val_sparse_categorical_accuracy: 0.9752
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) multiple 0
_________________________________________________________________
dense (Dense) multiple 100480
_________________________________________________________________
dense_1 (Dense) multiple 1290
=================================================================
Total params: 101,770
Trainable params: 101,770
Non-trainable params: 0
边栏推荐
- 小程序开发如何提高效率?
- 无约束低分辨率人脸识别综述一:用于低分辨率人脸识别的数据集
- Distributed cluster architecture scenario optimization solution: distributed ID solution
- 【6】 Redis cache policy
- 【5】 Redis master-slave synchronization and redis sentinel (sentinel)
- 高端大气的小程序开发设计有哪些注意点?
- 小程序开发解决零售业的焦虑
- 将项目部署到GPU上,并且运行
- Kubesphere installation version problem
- Interface anti duplicate submission
猜你喜欢

【7】 Consistency between redis cache and database data

Deep learning (self supervision: Moco V2) -- improved bases with momentum contractual learning

小程序开发如何提高效率?

深度学习(自监督:MoCo V3):An Empirical Study of Training Self-Supervised Vision Transformers

Manually create a simple RPC (< - < -)

How much does it cost to make a small program mall? What are the general expenses?

Interface anti duplicate submission

Applet development

Construction of redis master-slave architecture

强化学习——Proximal Policy Optimization Algorithms
随机推荐
Shutter webivew input evokes camera albums
Distributed lock redis implementation
Invalid packaging for parent POM x, must be “pom“ but is “jar“ @
神经网络优化
如何选择小程序开发企业
深度学习(增量学习)——ICCV2021:SS-IL: Separated Softmax for Incremental Learning
The signature of the update package is inconsistent with that of the installed app
No module named yum
Distributed cluster architecture scenario optimization solution: session sharing problem
循环神经网络
4个角度教你选小程序开发工具?
Service reliability guarantee -watchdog
小程序开发解决零售业的焦虑
Distributed cluster architecture scenario optimization solution: distributed ID solution
Deep learning - patches are all you need
Reinforcement learning - Basic Concepts
小程序开发系统有哪些优点?为什么要选择它?
Installing redis under Linux (centos7)
强化学习——Proximal Policy Optimization Algorithms
小程序开发流程详细是什么呢?