【问题标题】:Keras model not compilingKeras模型未编译
【发布时间】:2021-08-30 00:29:38
【问题描述】:

我正在尝试为分类模型构建 Keras 模型,但在尝试拟合数据时出现错误。

ValueError: Shapes (None, 99) 和 (None, 2) 不兼容

代码:

import warnings
warnings.filterwarnings(action = 'ignore')

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix, classification_report

import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import to_categorical

df = pd.read_csv('train.csv')

del df['ST_CASE']
df

target_column = ['MVISOBSC'] 
predictors = list(set(list(df.columns))-set(target_column))
df[predictors] = df[predictors]/df[predictors].max()

X = df[predictors].values
y = df[target_column].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=42)
print(X_train.shape); print(X_test.shape)

y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

model = Sequential()
model.add(Dense(500, activation='relu', input_dim=6))
model.add(Dense(100, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(2, activation='softmax'))

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

try:
    model.fit(X_train, y_train, epochs = 20)
except Exception as e:
    print(e)

形状值:

X_train = (1282, 6)
X_test = (550, 6)
y_train = (1282)
y_test = (550)

我也尝试过重塑 X_train 和 X_test,但对错误没有任何影响。

【问题讨论】:

  • “不编译”在这里没有意义,Keras 模型并没有真正编译。

标签: python pandas tensorflow keras neural-network


【解决方案1】:

没有。最后Dense 层中的单元数必须与输出的维度匹配。

# Reshape the labels
y_train = np.expand_dims( y_train , axis=1 )
y_test = np.expand_dims( y_test , axis=1 )


model = Sequential()
model.add(Dense(500, activation='relu', input_dim=6))
model.add(Dense(100, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(1, activation='softmax'))

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多