ディープ ニューラル ネットワーク - 深層学習のための正則化

L1 および L2 の正則化

機械学習を参照

tf.keras.regularizers.L1(l1=0.01)
tf.keras.regularizers.L2(l2=0.01)
tf.keras.regularizers.L1L2(l1=0.0,l2=0.0)

ドロップアウトの正則化

ここに画像の説明を挿入
ここに画像の説明を挿入

import tensorflow as tf
import numpy as np

#定义dropout层
layer=tf.keras.layers.Dropout(0.2,input_shape=(2,)) #每个神经元失活的概率为0.2,未被失活的输入按1/(1-rate)放大
#定义输入数据
data=np.arange(1,11).reshape(5,2).astype(np.float32)
print(data)
#对输入数据进行随机失活
outputs=layer(data,training=True)
print(outputs)

ここに画像の説明を挿入

早めにやめてください

ここに画像の説明を挿入

#定义回调函数
callback=tf.keras.callbacks.EarlyStopping(monitor='loss',patience=3) #有3个epoch不再提升时进行提前停止
#定义一层网络
model=tf.keras.Sequential([tf.keras.layers.Dense(10)])
#模型编译
model.compile(optimizer=tf.keras.optimizers.SGD(),loss='mse')
#模型训练
history=model.fit(np.arange(100).reshape(5,20),np.array([0,1,0,1,0]),epochs=10,batch_size=1,callbacks=[callback])
len(history.history['loss'])

ここに画像の説明を挿入

バッチ正規化

ここに画像の説明を挿入

tf.keras.layers.BatchNormalization(epsilon=0.001,center=True,scale=True,beta_initializer='zero',gamma_initializer='ones')

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_40527560/article/details/131503006