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

      

    多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
  • 相关阅读:
    删除链表的倒数第N个节点
    SVN快速入门(TSVN)
    C# HttpWebRequest提交数据方式浅析
    简单的3个SQL视图搞定所有SqlServer数据库字典
    简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
    详细讲解Android对自己的应用代码进行混淆加密防止反编译
    PHP之网络编程
    PHP之ThinkPHP模板标签操作
    PHP之ThinkPHP数据操作CURD
    关于数组的取极值和排序
  • 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/12256785.html
Copyright © 2020-2023  润新知