当前位置:网站首页>7.正则化应用
7.正则化应用
2022-07-07 23:12:00 【booze-J】
一、正则化的应用
在6.Dropout应用中的未使用Dropout的代码的网络模型构建中添加正则化。
将6.Dropout应用中的
# 创建模型 输入784个神经元,输出10个神经元
model = Sequential([
# 定义输出是200 输入是784,设置偏置为1,添加softmax激活函数 第一个隐藏层有200个神经元
Dense(units=200,input_dim=784,bias_initializer='one',activation="tanh"),
# 第二个隐藏层有 100个神经元
Dense(units=100,bias_initializer='one',activation="tanh"),
Dense(units=10,bias_initializer='one',activation="softmax")
])
修改为
# 创建模型 输入784个神经元,输出10个神经元
model = Sequential([
# 定义输出是200 输入是784,设置偏置为1,添加softmax激活函数 第一个隐藏层有200个神经元
Dense(units=200,input_dim=784,bias_initializer='one',activation="tanh",kernel_regularizer=l2(0.0003)),
# 第二个隐藏层有 100个神经元
Dense(units=100,bias_initializer='one',activation="tanh",kernel_regularizer=l2(0.0003)),
Dense(units=10,bias_initializer='one',activation="softmax",kernel_regularizer=l2(0.0003))
])
使用l2正则化之前需要先导入from keras.regularizers import l2
。
运行结果:
从运行结果可以看出来明显克服了一些过拟合的情况,模型对于数据集不是很复杂,加上正则化的话,它的效果可能就不是很好。
完整代码
代码运行平台为jupyter-notebook,文章中的代码块,也是按照jupyter-notebook中的划分顺序进行书写的,运行文章代码,直接分单元粘入到jupyter-notebook即可。
1.导入第三方库
import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense
from tensorflow.keras.optimizers import SGD
from keras.regularizers import l2
2.加载数据及数据预处理
# 载入数据
(x_train,y_train),(x_test,y_test) = mnist.load_data()
# (60000, 28, 28)
print("x_shape:\n",x_train.shape)
# (60000,) 还未进行one-hot编码 需要后面自己操作
print("y_shape:\n",y_train.shape)
# (60000, 28, 28) -> (60000,784) reshape()中参数填入-1的话可以自动计算出参数结果 除以255.0是为了归一化
x_train = x_train.reshape(x_train.shape[0],-1)/255.0
x_test = x_test.reshape(x_test.shape[0],-1)/255.0
# 换one hot格式
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)
3.训练模型
# 创建模型 输入784个神经元,输出10个神经元
model = Sequential([
# 定义输出是200 输入是784,设置偏置为1,添加softmax激活函数 第一个隐藏层有200个神经元
Dense(units=200,input_dim=784,bias_initializer='one',activation="tanh",kernel_regularizer=l2(0.0003)),
# 第二个隐藏层有 100个神经元
Dense(units=100,bias_initializer='one',activation="tanh",kernel_regularizer=l2(0.0003)),
Dense(units=10,bias_initializer='one',activation="softmax",kernel_regularizer=l2(0.0003))
])
# 定义优化器
sgd = SGD(lr=0.2)
# 定义优化器,loss_function,训练过程中计算准确率
model.compile(
optimizer=sgd,
loss="categorical_crossentropy",
metrics=['accuracy']
)
# 训练模型
model.fit(x_train,y_train,batch_size=32,epochs=10)
# 评估模型
# 测试集的loss和准确率
loss,accuracy = model.evaluate(x_test,y_test)
print("\ntest loss",loss)
print("test_accuracy:",accuracy)
# 训练集的loss和准确率
loss,accuracy = model.evaluate(x_train,y_train)
print("\ntrain loss",loss)
print("train_accuracy:",accuracy)
边栏推荐
- 【GO记录】从零开始GO语言——用GO语言做一个示波器(一)GO语言基础
- What has happened from server to cloud hosting?
- [necessary for R & D personnel] how to make your own dataset and display it.
- Reentrantlock fair lock source code Chapter 0
- Stock account opening is free of charge. Is it safe to open an account on your mobile phone
- A network composed of three convolution layers completes the image classification task of cifar10 data set
- 深潜Kotlin协程(二十二):Flow的处理
- CVE-2022-28346:Django SQL注入漏洞
- 51 communicates with the Bluetooth module, and 51 drives the Bluetooth app to light up
- Cause analysis and solution of too laggy page of [test interview questions]
猜你喜欢
CVE-2022-28346:Django SQL注入漏洞
Thinkphp内核工单系统源码商业开源版 多用户+多客服+短信+邮件通知
RPA cloud computer, let RPA out of the box with unlimited computing power?
[Yugong series] go teaching course 006 in July 2022 - automatic derivation of types and input and output
新库上线 | CnOpenData中华老字号企业名录
他们齐聚 2022 ECUG Con,只为「中国技术力量」
QT adds resource files, adds icons for qaction, establishes signal slot functions, and implements
Cancel the down arrow of the default style of select and set the default word of select
第四期SFO销毁,Starfish OS如何对SFO价值赋能?
13.模型的保存和载入
随机推荐
From starfish OS' continued deflationary consumption of SFO, the value of SFO in the long run
Thinkphp内核工单系统源码商业开源版 多用户+多客服+短信+邮件通知
【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出
手机上炒股安全么?
语义分割模型库segmentation_models_pytorch的详细使用介绍
Su embedded training - Day3
Hotel
Solution to the problem of unserialize3 in the advanced web area of the attack and defense world
Su embedded training - day4
串口接收一包数据
Langchao Yunxi distributed database tracing (II) -- source code analysis
How to learn a new technology (programming language)
SDNU_ACM_ICPC_2022_Summer_Practice(1~2)
股票开户免费办理佣金最低的券商,手机上开户安全吗
【obs】官方是配置USE_GPU_PRIORITY 效果为TRUE的
[OBS] the official configuration is use_ GPU_ Priority effect is true
What has happened from server to cloud hosting?
Codeforces Round #804 (Div. 2)(A~D)
【obs】Impossible to find entrance point CreateDirect3D11DeviceFromDXGIDevice
Reptile practice (VIII): reptile expression pack