你好,我正在尝试一个非常简单的项目,只为了学习TensorFlow的工作原理。我只提供了三个简单的数组,但它无法找到它们之间的关系,并给我返回了一个错误。这是为什么?如何解决这个问题?这是我的代码:
import tensorflow as tffrom tensorflow import kerasx = [[1,2,5,6],[12,5,1,7],[1,5,7,9]]y = [[1],[4],[3]]model = keras.Sequential()model.add(keras.layers.Dense(4, activation=tf.nn.relu))model.add(keras.layers.Dense(1, activation=tf.nn.softmax))model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])model.fit(x,y,epochs=20,batch_size=4)
错误:ValueError: 请提供单个数组或数组列表作为模型输入。你提供了:x=[[1, 2, 5, 6], [12, 5, 1, 7], [1, 5, 7, 9]]
回答:
在Python中,我们没有原生的数组。你用x
和y
创建的是列表。更准确地说,是列表的列表。
正如错误消息所说,TensorFlow期望numpy数组或数组列表作为输入。
在代码顶部添加import numpy
,并在使用模型之前将x
和y
转换为numpy数组。
x = [[1,2,5,6],[12,5,1,7],[1,5,7,9]]y = [[1],[4],[3]]x = numpy.array(x)y = numpy.array(y)