当前位置:网站首页>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)
边栏推荐
- 德总理称乌不会获得“北约式”安全保障
- Kubernetes Static Pod (静态Pod)
- 5g NR system messages
- tourist的NTT模板
- The weight of the product page of the second level classification is low. What if it is not included?
- 1293_FreeRTOS中xTaskResumeAll()接口的实现分析
- AI遮天传 ML-初识决策树
- What has happened from server to cloud hosting?
- 1293_ Implementation analysis of xtask resumeall() interface in FreeRTOS
- Thinkphp内核工单系统源码商业开源版 多用户+多客服+短信+邮件通知
猜你喜欢

C # generics and performance comparison

第一讲:链表中环的入口结点

Huawei switch s5735s-l24t4s-qa2 cannot be remotely accessed by telnet

My best game based on wechat applet development

新库上线 | CnOpenData中国星级酒店数据

Codeforces Round #804 (Div. 2)(A~D)

5.过拟合,dropout,正则化

Fofa attack and defense challenge record

What if the testing process is not perfect and the development is not active?

Reentrantlock fair lock source code Chapter 0
随机推荐
The method of server defense against DDoS, Hangzhou advanced anti DDoS IP section 103.219.39 x
Lecture 1: the entry node of the link in the linked list
Leetcode brush questions
Basic principle and usage of dynamic library, -fpic option context
Fofa attack and defense challenge record
Summary of weidongshan phase II course content
《因果性Causality》教程,哥本哈根大学Jonas Peters讲授
How does the markdown editor of CSDN input mathematical formulas--- Latex syntax summary
Cve-2022-28346: Django SQL injection vulnerability
语义分割模型库segmentation_models_pytorch的详细使用介绍
STL -- common function replication of string class
C# 泛型及性能比较
NVIDIA Jetson test installation yolox process record
新库上线 | CnOpenData中国星级酒店数据
新库上线 | CnOpenData中华老字号企业名录
Handwriting a simulated reentrantlock
How to learn a new technology (programming language)
Stock account opening is free of charge. Is it safe to open an account on your mobile phone
"An excellent programmer is worth five ordinary programmers", and the gap lies in these seven key points
国外众测之密码找回漏洞