首页 > 解决方案 > 损失函数和准确性没有改变 keras

问题描述

我的 Keras 模型没有学到任何东西,我不知道为什么。在训练时期损失和准确度值不变的问题。我尝试提高学习率,但没有奏效,我也尝试更改优化器,但没有改善。完整代码如下:

import random
import pandas as pd
import tensorflow as tf
from keras.utils import np_utils
from keras.utils import to_categorical
from sklearn.preprocessing import LabelEncoder
from keras import backend as K
import glob, os
import keras
from keras.layers import BatchNormalization
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import *

dataset = pd.read_csv('meta_sign_1-8_means.csv')


X = dataset.iloc[:,1:101].values
y = dataset.iloc[:,0].values

order = list(range(0,len(y)))
random.shuffle(order)

#print(order)

X = X[order,:]
y = y[order]

print(X[1,:])
#print(y[1:10])

encoder = LabelEncoder()
encoder.fit(y)
encoded_Y=encoder.transform(y)
y = np_utils.to_categorical(encoded_Y)
X = X.astype('float32')

model= Sequential()
model.add(Dense(units=90,input_shape = (100,)))
#model.add(LeakyReLU(alpha=0.05))
model.add(Activation('relu'))
model.add(Dropout(0.3))
model.add(Dense(units=100))
#model.add(LeakyReLU(alpha=0.1))
model.add(Activation('relu'))
model.add(Dropout(0.05))
model.add(Dense(402, activation='softmax'))
optm = keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False)
model.compile(optimizer=optm,loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X,y,batch_size=512,nb_epoch=1000,verbose=1)

训练输出:

401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0024
Epoch 38/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0023
Epoch 39/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0024
Epoch 40/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0025
Epoch 41/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0023
Epoch 42/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0023
Epoch 43/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0024
Epoch 44/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0024
Epoch 45/1000
401999/401999 [==============================] - 1s 3us/step - loss: 5.9965 - accuracy: 0.0023

数据集可在此处获得: https ://drive.google.com/file/d/1rV1nHMFXh18Z1dDhlWJdWdC87UOKU0q5/view?usp= sharing 非常感谢任何帮助!先感谢您

标签: kerasdeep-learning

解决方案


推荐阅读