4.keras-交叉熵的介绍和应用

keras-交叉熵的介绍和应用网络

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 * from keras.optimizers import SGD import os import tensorflow as tf # 载入数据 (x_train,y_train),(x_test,y_test) = mnist.load_data() # 预处理 # 将(60000,28,28)转化为(600000,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)

2.建立网络打印训练结果编码

# 建立网络
model = Sequential([
    # 输入784输出10个
    Dense(units=10,input_dim=784,bias_initializer='one',activation='softmax') ]) # 编译 # 自定义优化器 sgd = SGD(lr=0.1) model.compile(optimizer=sgd,
        # 运用交叉熵 loss='categorical_crossentropy', metrics=['accuracy']) model.fit(x_train,y_train,batch_size=32,epochs=10,validation_split=0.2) # 评估模型 loss,acc = model.evaluate(x_test,y_test,) print('\ntest loss',loss) print('test acc',acc)

out:lua

Epoch 1/10spa

32/48000 [..............................] - ETA: 2:43 - loss: 2.2593 - acc: 0.1562
1792/48000 [>.............................] - ETA: 4s - loss: 1.2642 - acc: 0.6579 code

......blog

......input

Epoch 10/10it

47456/48000 [============================>.] - ETA: 0s - loss: 0.2712 - acc: 0.9241
48000/48000 [==============================] - 2s 41us/step - loss: 0.2716 - acc: 0.9240 - val_loss: 0.2748 - val_acc: 0.9240io

 

32/10000 [..............................] - ETA: 0s
2976/10000 [=======>......................] - ETA: 0s
6656/10000 [==================>...........] - ETA: 0s
10000/10000 [==============================] - 0s 17us/step

test loss 0.2802182431191206test acc 0.9205

相关文章
相关标签/搜索