# -*- coding: utf-8 -*-
"""
Created on Tue Oct 23 18:43:30 2018
@author: Administrator
"""
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.layers import Conv2D, MaxPooling2D, Flatten
from keras.optimizers import SGD,Adam
from keras.utils import np_utils
from keras.datasets import mnist
def load_data():
(x_train, y_train),(x_test, y_test) = mnist.load_data()
number =10000
x_train = x_train[0:number]
y_train = y_train[0:number]
x_train = x_train.reshape(number,28*28)
x_test = x_test.reshape(x_test.shape[0],28*28)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
y_train = np_utils.to_categorical(y_train,10)
y_test = np_utils.to_categorical(y_test,10)
x_train = x_train
x_test =x_test
x_train = x_train / 255
x_test = x_test / 255
return (x_train, y_train), (x_test, y_test)
(x_train, y_train), (x_test, y_test) = load_data()
#Sequential生成一个空网络结构
model = Sequential()
model.add(Dense(input_dim=28*28,units=1024, activation='sigmoid'))
model.add(Dense(units=1024,activation='sigmoid'))
model.add(Dense(units=1024,activation='sigmoid'))
model.add(Dense(units=10,activation='softmax'))
#compile编译整个网络
model.compile(loss='mse',optimizer=SGD(lr=0.1),metrics=['accuracy'])
model.fit(x_train,y_train,batch_size=100,epochs=20)
result=model.evaluate(x_test,y_test)
print('\nTest Acc:', result[1])
解决方法
/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py的3231行
return tf.nn.softmax(x, axis=axis)
改成
return tf.nn.softmax(x,dim=axis)#keras由于axis=axis
或return tf.nn.softmax(x)