首页 > 解决方案 > logits 和标签必须具有相同的形状 ((None, 4, 1, 2) vs (None, 2))

问题描述

def train(data,model=False):

    X= np.array([i[0] for i in data]).reshape(-1,len(data[0][0]),1)
    y=np.array([i[1] for i in data])

    if model==False:
        network = models.Sequential()

        network.add(layers.Dense(32,input_shape=[None, len(X[0]), 1], activation='relu'))
#        network.add(layers.Flatten())
        network.add(layers.Dropout(0.8))

        network.add(layers.Dense(64,activation='relu'))
        network.add(layers.Dropout(0.8))

        network.add(layers.Dense(128,activation='relu'))
        network.add(layers.Dropout(0.8))

        network.add(layers.Dense(64,activation='relu'))
        network.add(layers.Dropout(0.8))

        network.add(layers.Dense(32,activation='relu'))
        network.add(layers.Dropout(0.8))

        network.add(layers.Dense(2,activation='sigmoid'))
        network.compile(optimizer='adam',
                    loss='sparse_categorical_crossentropy',
                    metrics=['accuracy'])

    network.fit(X, y, epochs=5, batch_size=128)

    return network

以上是我用于 Open AI 健身房环境的 keras 神经网络。我得到了我的数据并像这样存储它

[ [obs , reward , done , info ] , [ 0 , 1 ] ] 

[ 0 , 1 ] for 0 and [ 1 , 0 ] for 1. 

y变量是[ 0 , 1 ], x变量是 **[obs , reward , done , info ] **

将这些数据拟合到我的神经网络的正确方法是什么?

标签: tensorflowkeras

解决方案


推荐阅读