keras添加正则化全连接_TensorFlow keras卷积神经网络 添加L2正则化

model = keras.models.Sequential([

#卷积层1

keras.layers.Conv2D(32,kernel_size=5,strides=1,padding="same",data_format="channels_last",activation=tf.nn.relu,kernel_regularizer=keras.regularizers.l2(0.01)),

#池化层1

keras.layers.MaxPool2D(pool_size=2,strides=2,padding="same"),

#卷积层2

keras.layers.Conv2D(64,kernel_size=5,strides=1,padding="same",data_format="channels_last",activation=tf.nn.relu),

#池化层2

keras.layers.MaxPool2D(pool_size=2,strides=2,padding="same"),

#数据整理

keras.layers.Flatten(),

#1024个,全连接层

keras.layers.Dense(1024,activation=tf.nn.relu),

#100个,全连接层

keras.layers.Dense(100,activation=tf.nn.softmax)

])

import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

from tensorflow.python.keras.datasets import cifar100

from tensorflow.python import keras

import tensorflow as tf

class CNNMnist(object):

model = keras.models.Sequential([

#卷积层1

keras.layers.Conv2D(32,kernel_size=5,strides=1,padding="same",data_format="channels_last",activation=tf.nn.relu,kernel_regularizer=keras.regularizers.l2(0.01)),

#池化层1

keras.layers.MaxPool2D(pool_size=2,strides=2,padding="same"),

#卷积层2

keras.layers.Conv2D(64,kernel_size=5,strides=1,padding="same",data_format="channels_last",activation=tf.nn.relu),

#池化层2

keras.layers.MaxPool2D(pool_size=2,strides=2,padding="same"),

#数据整理

keras.layers.Flatten(),

#1024个,全连接层

keras.layers.Dense(1024,activation=tf.nn.relu),

#100个,全连接层

keras.layers.Dense(100,activation=tf.nn.softmax)

])

def __init__(self):

(self.x_train,self.y_train),(self.x_test,self.y_test) = cifar100.load_data()

self.x_train = self.x_train/255.0

self.x_test = self.x_test/255.0

def compile(self):

CNNMnist.model.compile(optimizer=keras.optimizers.Adam(),loss=keras.losses.sparse_categorical_crossentropy,metrics=["accuracy"])

def fit(self):

CNNMnist.model.fit(self.x_train,self.y_train,epochs=1,batch_size=32)

def evaluate(self):

test_loss,test_acc = CNNMnist.model.evaluate(self.x_test,self.y_test)

print(test_loss,test_acc)

if __name__ == '__main__':

cnn = CNNMnist()

print(CNNMnist.model.summary())

cnn.compile()

cnn.fit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值