张量流中model.fit()中的值错误



我是张量流的初学者。我试图建立一个简单的模型,尝试预测0和1的AND运算。我制作了一个包含0和1 AND运算的小数据集,其中包含X1、X2和输出列。我有两个变量X和y。X具有input1和input2的数据帧。y具有输出的数据帧。问题是使用keras定义神经网络层。我不知道如何指定输入层的大小。

import tensorflow as tf
from tensorflow import keras
import pandas as pd
dataDF = pd.read_excel('Untitled.xlsx')
dataDF.columns = ['X1','X2','Output']
x = dataDF[['X1','X2']]
y = dataDF[['Output']]
model = keras.Sequential([
keras.layers.Dense(units=2,input_shape=[2]),
keras.layers.Dense(units=10,activation='relu'),
keras.layers.Dense(1)           
])
model.compile() #Here i don't know what loss and optimizer i should specify
model.fit(X,y)

我得到以下错误

ValueError: Input 0 of layer sequential_11 is incompatible with the layer: expected axis -1 of input shape to have value 1 but received input with shape [None, 2]

X和y的形状分别为(15,2(和(15,1(。

我如何将X作为输入输入到神经网络,什么是input_shape。

您应该替换input_shape=[2] to input_shape=(2,)。输入形状是元组而不是列表。

序列模型适用于每个层只有一个输入张量和一个输出张量的普通层堆栈。以下情况下,顺序模型不适用:

  • 您的模型有多个输入或多个输出
  • 任何层都有多个输入或多个输出

如果您有2个输入,那么可以尝试使用Keras Functional API

最新更新