首页 > 解决方案 > Keras 输入形状,输入列表的简单数组

问题描述

其中每个数组([x1, x2, x3, ... , x15]) 表示单个输入

[array([0.        , 0.08333333, 0.08333333, 0.08333333, 0.08333333,
   0.08333333, 0.08333333, 0.        , 0.08333333, 0.08333333,
   0.08333333, 0.08333333, 0.08333333, 0.08333333, 0.        ])
 array([0.04166667, 0.10416667, 0.10416667, 0.08333333, 0.        ,
       0.10416667, 0.10416667, 0.02083333, 0.10416667, 0.08333333,
       0.        , 0.        , 0.125     , 0.125     , 0.        ])
 array([0.04166667, 0.        , 0.125     , 0.10416667, 0.02083333,
       0.125     , 0.125     , 0.02083333, 0.10416667, 0.        ,
       0.02083333, 0.02083333, 0.14583333, 0.14583333, 0.        ])
 ...
 array([0.4375    , 0.0625    , 0.        , 0.        , 0.        ,
       0.0625    , 0.        , 0.25      , 0.        , 0.08333333,
       0.04166667, 0.02083333, 0.        , 0.04166667, 1.        ])
 array([0.45833333, 0.        , 0.02083333, 0.02083333, 0.02083333,
       0.08333333, 0.        , 0.25      , 0.        , 0.08333333,
       0.04166667, 0.02083333, 0.        , 0.        , 1.        ])
 array([0.5       , 0.        , 0.        , 0.02083333, 0.02083333,
       0.        , 0.02083333, 0.27083333, 0.02083333, 0.10416667,
       0.0
       4166667, 0.        , 0.        , 0.        , 1.        ])]

进入模型

model = Sequential()
model.add(Dense(15, input_dim=15, kernel_initializer='uniform', activation='relu'))
model.add(Dense(16, kernel_initializer='uniform', activation='relu'))
model.add(Dense(14, kernel_initializer='uniform', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

抱怨:

ValueError: Error when checking input: expected dense_1_input to have shape (15,) but got array with shape (1,)

如何重塑输入数据以适应此模型?

标签: pythontensorflowkerasreshape

解决方案


它不想要一个 numpy 数组,它应该是内部列表,但只有最顶层的数组

X_train = np.array([x.tolist() for x in df['board_in'].values])
y_train = df['target']
y_train = np.array([y for y in df['target'].values])

推荐阅读