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()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM