搭建网络八股文(tensorflow)

一、import

引入需要使用的包

二、train,test

输入训练集和测试集

三、model = tf.keras.model.Sequential([网络结构]) #描述各层网络

eg. 拉直层:tf.keras.layers.Flatten() #将输入特征拉直变成一维数组

全连接层:tf.keras.layers.Dense(神经源个数,activation=“激活函数”,kernel_regularizer=哪种正则化) ,

activation(字符串给出)可选:relu、softmax、sigmoid、tanh

常用的激活函数介绍:https://blog.csdn.net/wangqianqianya/article/details/82961276https://blog.csdn.net/wangqianqianya/article/details/82961276

kernel_regulartzer可选:tf.keras.regularizers.l1()、tf.keras.regularizers.l2()

三种正则化区别及应用:https://stats.stackexchange.com/questions/383310/what-is-the-difference-between-kernel-bias-and-activity-regulizers-and-when-thttps://stats.stackexchange.com/questions/383310/what-is-the-difference-between-kernel-bias-and-activity-regulizers-and-when-t

卷积层:tf.keras.layers.Conv2D(filters = 卷积核个数,kernel_size = 卷积核尺寸,strides = 卷积步长,padding = “valid” or “same”)

图解卷积层:https://blog.csdn.net/weixin_47604030/article/details/122633295https://blog.csdn.net/weixin_47604030/article/details/122633295

公式介绍卷积层:https://blog.csdn.net/qq_24503095/article/details/103641973https://blog.csdn.net/qq_24503095/article/details/103641973

LSTM层:tf.keras.layers.LSTM()

rnn、gru、lstm介绍:https://zhuanlan.zhihu.com/p/135320350https://zhuanlan.zhihu.com/p/135320350

rnn、gru、lstm梯度消失和梯度爆炸介绍:https://zhuanlan.zhihu.com/p/60915302https://zhuanlan.zhihu.com/p/60915302

四、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)

优化器介绍:https://zhuanlan.zhihu.com/p/261695487https://zhuanlan.zhihu.com/p/261695487

loss可选:

'mse' or tf.keras.losses.MeanSquaredError()

'sparse_categorical_crosssentropy' or tf.keras.losses.SparseCategoricalCrossentropy(from_logits = False) 

#如果神经网络预测前经过概率分布from_logits为false,如果是直接输出则为true。假如十分类,正确率是十分之一,网络结构没有问题的前提下很可能是此参数出错

loss介绍:https://zhuanlan.zhihu.com/p/97698386https://zhuanlan.zhihu.com/p/97698386

Metrics可选:

'accuray':y_和y都是数值,如y_ = [1]  y = [1]

'categorical_accuracy':y_和y都是独热码(或概率分布),如y_ = [0,1,0]  y = [0.256,0.695,0.048] 

# 独热编码(One-Hot Encoding),又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。. 即,只有一位是1,其余都是零值。. 例如,对六个状态进行编码:. 自然顺序码为 000,001,010,011,100,101. 独热编码则是 000001,000010,000100,001000,010000,100000.

'sparse_categorical_accuracy':y_是数值,y是独热码(或概率分布),如y_ = [1]  y=[0.256,0.695,0.048]

#此处y_ = [1]中1为标签,y=[0.256,0.695,0.048]为概率分布

五、model.fit

                        (训练集的输入特征,训练集的标签,

                         batch_size =  , epochs = ,

                         validation_data = (测试机的输入特征,测试集的标签),

                         validation_split = 从训练集划分多少比例给测试集,

                         validation_freq = 多少次epoch测试一次)

fit( x=None, #输入的x值
     y=None, #输入的y标签值
     batch_size=None, #整数 ,每次梯度更新的样本数即批量大小。未指定,默认为32。
     epochs=1, #迭代次数
     verbose=1, #整数,代表以什么形式来展示日志状态
     callbacks=None, #回调函数,这个list中的回调函数将会在训练过程中的适当时机被调用,参考回调函数
     validation_split=0.0, #浮点数0-1之间,用作验证集的训练数据的比例。模型将分出一部分不会被训练的验证数据,并将在每一轮结束时评估这些验证数据的误差和任何其他模型指标。
     validation_data=None, #这个参数会覆盖 validation_split,即两个函数只能存在一个,它的输入为元组 (x_val,y_val),这作为验证数据。
     shuffle=True, #布尔值。是否在每轮迭代之前混洗数据
     class_weight=None,
     sample_weight=None, 
     initial_epoch=0, 
     steps_per_epoch=None, #一个epoch包含的步数(每一步是一个batch的数据送入),当使用如TensorFlow数据Tensor之类的输入张量进行训练时,默认的None代表自动分割,即数据集样本数/batch样本数。
     validation_steps=None, #在验证集上的step总数,仅当steps_per_epoch被指定时有用。
     validation_freq=1, #指使用验证集实施验证的频率。当等于1时代表每个epoch结束都验证一次
     max_queue_size=10,
     workers=1,
     use_multiprocessing=False

原文链接:https://blog.csdn.net/wuruivv/article/details/109372708

Python中的fit(),transform()区别:https://zhuanlan.zhihu.com/p/42297868https://zhuanlan.zhihu.com/p/42297868

六、model.summary()

打印网络结构和参数统计

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值