Python 从TF 1.12移动到1.10后,密层输出形状错误
我正在从Tensorflow 1.12迁移到Tensorflow 1.10(Collaboratory->AWS sagemaker),代码在Tensorflow 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和填充进行预处理,使它们的长
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]