keras报错softmax() got an unexpected keyword ‘axis‘’

# -*- 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)

猜你喜欢

转载自blog.csdn.net/liuliqun520/article/details/83313983