首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个标注的Tensorflow Keras尺寸不相等错误

多个标注的Tensorflow Keras尺寸不相等错误
EN

Stack Overflow用户
提问于 2019-12-11 07:15:39
回答 1查看 458关注 0票数 0

我正在尝试使用Tensorflow 2.0.0的Keras和Tensorflow Datasets API来预测从多维输入到多维输出。

我在python 3.6.9上使用tensorflow 2.0.0tensorflow-datasets 1.3.0

下面是我的示例代码,我也在a Colab notebook上复制了它,你可以运行它:

代码语言:javascript
复制
import tensorflow as tf
data = [[1,2],[11,22]]
label = [[3,4,5], [33,44,55]]
dataset = tf.data.Dataset.from_tensor_slices((data,label))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(3))
model.compile('adam','mse',metrics=['mse'])
model.fit(dataset, validation_data=dataset)

在这个示例代码中,我试图预测[1,2]->[3,4,5][11,22]->[33,44,55]。然而,我得到了错误:

代码语言:javascript
复制
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
/tensorflow-2.0.0/python3.6/tensorflow_core/python/framework/ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
   1609   try:
-> 1610     c_op = c_api.TF_FinishOperation(op_desc)
   1611   except errors.InvalidArgumentError as e:

InvalidArgumentError: Dimensions must be equal, but are 2 and 3 for 'loss/output_1_loss/SquaredDifference' (op: 'SquaredDifference') with input shapes: [2,3], [3,1].

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
29 frames
/tensorflow-2.0.0/python3.6/tensorflow_core/python/framework/ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
   1611   except errors.InvalidArgumentError as e:
   1612     # Convert to ValueError for backwards compatibility.
-> 1613     raise ValueError(str(e))
   1614 
   1615   return c_op

ValueError: Dimensions must be equal, but are 2 and 3 for 'loss/output_1_loss/SquaredDifference' (op: 'SquaredDifference') with input shapes: [2,3], [3,1].
EN

回答 1

Stack Overflow用户

发布于 2019-12-12 04:37:27

根据问题的thushv89's comment,在数据集上使用batch可以修复代码。原始代码比这复杂得多,但使用batch修复了它。

代码语言:javascript
复制
import tensorflow as tf
data = [[1,2],[11,22]]
label = [[3,4,5], [33,44,55]]
dataset = tf.data.Dataset.from_tensor_slices((data,label)).batch(2)
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(3))
model.compile('adam','mse',metrics=['mse'])
model.fit(dataset, validation_data=dataset)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59276713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档