zoukankan      html  css  js  c++  java
  • 6.正则化

    1 import numpy as np
    2 from keras.datasets import mnist
    3 from keras.utils import np_utils
    4 from keras.models import Sequential
    5 from keras.layers import Dense
    6 from keras.optimizers import SGD
    7 from keras.regularizers import l2
    # 载入数据
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    # (60000,28,28)
    print('x_shape:',x_train.shape)
    # (60000)
    print('y_shape:',y_train.shape)
    # (60000,28,28)->(60000,784)
    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)
    
    # 创建模型
    model = Sequential([
            Dense(units=200,input_dim=784,bias_initializer='one',activation='tanh',kernel_regularizer=l2(0.0003)),
            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,accuracy = model.evaluate(x_test,y_test)
    print('
    test loss',loss)
    print('test accuracy',accuracy)
    
    loss,accuracy = model.evaluate(x_train,y_train)
    print('train loss',loss)
    print('train accuracy',accuracy)
  • 相关阅读:
    BZOJ-1016 最小生成树计数
    BZOJ-1003 物流运输
    BZOJ-1009 GT考试
    【NOIP2014】伤感·伤感·伤感
    BZOJ-1033 杀蚂蚁
    NOIP一系列模拟赛小结
    2014·NOIP 新的历程,新的开始
    35. Search Insert Position
    29. Divide Two Integers
    28. Implement strStr()
  • 原文地址:https://www.cnblogs.com/liuwenhua/p/11566984.html
Copyright © 2011-2022 走看看