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 从TF 1.12移动到1.10后,密层输出形状错误_Python_Tensorflow_Keras_Amazon Sagemaker - Fatal编程技术网

Python 从TF 1.12移动到1.10后,密层输出形状错误

Python 从TF 1.12移动到1.10后,密层输出形状错误,python,tensorflow,keras,amazon-sagemaker,Python,Tensorflow,Keras,Amazon Sagemaker,我正在从Tensorflow 1.12迁移到Tensorflow 1.10(Collaboratory->AWS sagemaker),代码在Tensorflow 1.12中似乎运行良好,但在1.10中我得到了一个错误ValueError:检查目标时出错:预期密度为2维,但得到了具有形状的数组(52692,) 输入示例-不带空格的字符串: ["testAbc", "aaDD", "roam"] 我通过将小写字母改为1、大写字母2、数字-3、'-'-4、'-5、'-5和填充进行预处理,使它们的长

我正在从Tensorflow 1.12迁移到Tensorflow 1.10(Collaboratory->AWS sagemaker),代码在Tensorflow 1.12中似乎运行良好,但在1.10中我得到了一个错误
ValueError:检查目标时出错:预期密度为2维,但得到了具有形状的数组(52692,)

输入示例-不带空格的字符串:

["testAbc", "aaDD", "roam"]
我通过将小写字母改为1、大写字母2、数字-3、'-'-4、'-5、'-5和填充进行预处理,使它们的长度与0相等

以及4个标签a-0,b-1,c-2,d-3

假设每个单词的最大长度是10(在我的代码中是20):

功能-[[1 1 1 2 1 0 0 0][1 1 2 0 0 0 0 0 0][1 1 1 0 0 0 0][1 1 1 1 1 0 0 0 0]

标签-[1,1,2,3]

预期产出:[a:0%,b:0%,c:1%,d:99%](示例)

train和evale的形状-二维阵列

train["featuresVec"]=
[[1 2 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0]
 [1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 [2 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]]

evale["featuresVec"]=
[[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0]
 [1 1 1 1 1 1 2 1 1 1 1 1 0 0 0 0 0 0 0 0]
 [1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 0]
 [1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 0 0]
 [1 1 1 1 1 2 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]

train["labelsVec"] = [1 0 0 0 2]
evale["labelsVec"] = [0 1 1 1 1]
形状:

train["featuresVec"] = [52692, 20]
evale["featuresVec"] = [28916, 20]
train["labelsVec"] = [52692]
evale["labelsVec"] = [28916]

可能您的标签向量的形状需要是
(批次大小,1)
,而不仅仅是
(批次大小,1)


注意:由于您使用的是
sparse\u categorical\u crossentropy
作为损失函数,而不是
categorical\u crossentropy
,因此对标签进行热编码是正确的

train[“featuresVec”]和train[“labelsVec”]的形状是什么?@MatiasValdenegro我用codeYes中的值更新了这个问题,但我只询问了形状。您现在可以看到数据的格式不正确。我还询问了train[“labelsVec”]啊,等等,稀疏交叉熵损失进行了一次热编码,您可以尝试制作标签数组(52692,1)吗?因此我尝试将标签包装到另一个[]中,以创建形状(大小,1)但我在检查目标时仍然遇到错误:预期稠密将具有形状(1),但获得具有形状(52692)的数组。我认为您是通过这种方式创建形状(1,大小),而不是(大小,1)。也许试着重塑一下?
train["featuresVec"] = [52692, 20]
evale["featuresVec"] = [28916, 20]
train["labelsVec"] = [52692]
evale["labelsVec"] = [28916]