Keras 预测每次都返回相同的结果

亚历山大·H

我是 Keras 的新手。刚开始在本地取自这里的示例示例数据工作正常。然后我稍微修改了代码以适应我的数据(在我的数据文件中,结果列排在第一位)。然后当我再次运行并尝试预测输入时,它总是为每个输入行返回相同的结果 - [1. 0.], [1. 0.] ...这是我的代码:

import pandas as pd
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import EarlyStopping
from keras.utils import to_categorical

#read in training data
train_df_2 = pd.read_csv('/Users/my_user/python-workspace/Deep-Learning-in-Keras-Tutorial/data/my_data.csv')

#view data structure
train_df_2.head()

#create a dataframe with all training data except the target column
train_X_2 = train_df_2.drop(columns=['result'])

target = train_df_2[['result']]

#check that the target variable has been removed
train_X_2.head()

#one-hot encode target column
train_y_2 = to_categorical(train_df_2.result)

#create model
model_2 = Sequential()

#get number of columns in training data
n_cols_2 = train_X_2.shape[1]

#add layers to model
model_2.add(Dense(25, activation='relu', input_shape=(n_cols_2,)))
model_2.add(Dense(25, activation='relu'))
model_2.add(Dense(2, activation='softmax'))
# model_2.add(Dense(10, input_dim=n_cols_2, kernel_initializer='normal', activation='relu'))
# model_2.add(Dense(25, activation='relu'))
# model_2.add(Dense(2, activation='softmax'))

#compile model using accuracy to measure model performance
model_2.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

#set early stopping monitor so the model stops training when it won't improve anymore
early_stopping_monitor = EarlyStopping(patience=3)

#train model
model_2.fit(train_X_2, train_y_2, epochs=30, validation_split=0.1, callbacks=[early_stopping_monitor])

p = model_2.predict(train_X_2, verbose=0, batch_size=1)
print(p)

我的输入数据示例:

result,i1,i2,i3,i4
0,1770,2390,1750,1816
1,1675,2540,2029,1940
1,1770,2384,1765,1770
0,1690,2485,2075,1900
0,1680,2465,2050,1920
0,1770,2395,1744,1795
1,1675,2490,2050,1915
0,1768,2400,1740,1790
0,1675,2525,2050,1910 
.... (total 2312 rows)

为什么它总是[1. 0.]为每一行返回相同的结果我预计至少有一排[0. 1.]. 我究竟做错了什么?

今天

您尚未标准化输入数据。因此,它会阻碍训练过程并破坏梯度更新,并且您的模型可能一无所获。尝试使用类似sklearn.preprocessing.StandardScaler. 或者,您可以手动执行此操作:

mean = train_X_2.mean(axis=0)
train_X_2 -= mean
std = train_X_2.std(axis=0)
train_X_2 /= std

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Keras C3DNN 预测结果相同

来自分类Dev

为什么我的 keras 模型总是预测相同的结果?

来自分类Dev

我的Keras卷积模型预测了从不同路径导入的相同图像,但预测结果不同

来自分类Dev

Keras (R) - 为什么所有输入的预测概率(二元分类)都相同?

来自分类Dev

Keras自定义层每次都接收相同的输入形状

来自分类Dev

预训练的 keras 模型在 android 中返回相同的结果

来自分类Dev

Keras模型预测相同类别

来自分类Dev

Keras预测精度与拟合结果不匹配

来自分类Dev

keras,无效的预测大小

来自分类Dev

Keras预测新形象

来自分类Dev

覆盖 keras 预测功能

来自分类Dev

std :: sample()每次都返回相同的元素

来自分类Dev

/ dev / urandom每次都返回相同的值

来自分类Dev

OpenCV RANSAC每次都返回相同的转换

来自分类Dev

Keras数据生成器预测相同数量的值

来自分类Dev

R 中的 Keras:高精度模型预测相同的输出类别

来自分类Dev

Keras Val_acc 很好,但对相同数据的预测很差

来自分类Dev

在CNN上调用Keras预测只是返回输入

来自分类Dev

为什么 Keras 训练得很好但返回错误的预测?

来自分类Dev

Keras中的预测流输出

来自分类Dev

Keras在Multiprosses Pool中预测

来自分类Dev

Tensorflow和Keras预测阈值

来自分类Dev

MLP Keras预测的循环程序

来自分类Dev

Keras LSTM随序列预测

来自分类Dev

函数每次运行不会返回相同的结果

来自分类Dev

Keras混合模型在每个时期都给出相同的结果

来自分类Dev

为什么iterator.next()每次都返回相同的项目?

来自分类Dev

伪随机发生器每次都返回相同的位

来自分类Dev

PHP mt_rand每次都返回相同的数字

Related 相关文章

热门标签

归档