keras - 损失函数和准确性没有改变 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 非常感谢任何帮助!先感谢您
解决方案
推荐阅读
- typescript - Angular TSLint:即使出现错误也继续下一步
- flutter - Flutter Chopper 库缓存 http 响应
- python - 如何在单行中编写此 python 条件
- sql-server - SSRS 2017 报告通过 Intranet 连接加载缓慢,通过 Web 链接通过 Internet 连接立即加载
- date - 在 ElasticSearch 中按日期和按天写入次数排序(二次排序)
- ios - 多行截断中间不能快速工作
- sql - 两个事务之间的写冲突
- ios - 将 VStack 的位置保存在 @State 私有变量中
- sql - 如何在 Oracle DB 中使用 max(Date) 和 Distinct。我想在一天内最后插入数据
- oracle - 插入内部触发器不触发