Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多个标签的Tensorflow Keras尺寸不相等错误_Python_Tensorflow_Tensorflow Datasets_Tensorflow2.0 - Fatal编程技术网

Python 多个标签的Tensorflow Keras尺寸不相等错误

Python 多个标签的Tensorflow Keras尺寸不相等错误,python,tensorflow,tensorflow-datasets,tensorflow2.0,Python,Tensorflow,Tensorflow Datasets,Tensorflow2.0,我正试图使用Tensorflow 2.0.0的Keras和Tensorflow数据集API,从多维输入预测多维输出 我正在python3.6.9上使用tensorflow 2.0.0和tensorflow数据集1.3.0 下面是我的示例代码,我还在[Colab笔记本]()上复制了它,您可以运行它: 将tensorflow导入为tf 数据=[[1,2],[11,22]] 标签=[[3,4,5],[33,44,55]] dataset=tf.data.dataset.from_tensor_切片((

我正试图使用Tensorflow 2.0.0的Keras和Tensorflow数据集API,从多维输入预测多维输出

我正在
python3.6.9
上使用
tensorflow 2.0.0
tensorflow数据集1.3.0

下面是我的示例代码,我还在[Colab笔记本]()上复制了它,您可以运行它:

将tensorflow导入为tf
数据=[[1,2],[11,22]]
标签=[[3,4,5],[33,44,55]]
dataset=tf.data.dataset.from_tensor_切片((数据,标签))
model=tf.keras.Sequential()
添加模型(tf.keras.layers.Dense(3))
compile('adam','mse',metrics=['mse'])
model.fit(数据集,验证\数据=数据集)
在这个示例代码中,我试图预测
[1,2]->[3,4,5]
[11,22]->[33,44,55]
。但是我得到了一个错误:

---------------------------------------------------------------------------
InvalidArgumentError回溯(最后一次最近调用)
/tensorflow-2.0.0/python3.6/tensorflow_core/python/framework/ops.py in_create_c_op(图形、节点定义、输入、控制输入)
1609试试看:
->1610 c_op=c_api.TF_FinishOperation(op_desc)
1611错误除外。InvalidArgumentError为e:
InvalidArgumentInterror:维度必须相等,但输入形状为[2,3],[3,1]的“损失/输出\损失/平方差”(op:“平方差”)的维度为2和3。
在处理上述异常期间,发生了另一个异常:
ValueError回溯(最近一次调用上次)
29帧
/tensorflow-2.0.0/python3.6/tensorflow_core/python/framework/ops.py in_create_c_op(图形、节点定义、输入、控制输入)
1611错误除外。InvalidArgumentError为e:
1612#转换为ValueError以实现向后兼容性。
->1613提升值错误(str(e))
1614
1615返回c_op
ValueError:尺寸必须相等,但输入形状为[2,3]、[3,1]的“损耗/输出\损耗/平方差”(op:“平方差”)的尺寸为2和3。
根据问题的答案, 在数据集上使用批处理修复了代码。 原始代码比这复杂,但使用批处理修复了它

将tensorflow导入为tf
数据=[[1,2],[11,22]]
标签=[[3,4,5],[33,44,55]]
dataset=tf.data.dataset.from_tensor_切片((数据,标签)).batch(2)
model=tf.keras.Sequential()
添加模型(tf.keras.layers.Dense(3))
compile('adam','mse',metrics=['mse'])
model.fit(数据集,验证\数据=数据集)

使用数据集的方法如下
dataset=tf.data.dataset.from_tensor_slices((np.array(data),np.array(label)).batch(2)
@thushv89结果表明,使用
.batch(n)
处理正整数
n
,例如,数据集上的批(2)可以让训练起作用。(你的回答有效)