运行带有输出层=池3的标签图像时出错 图像识别教程中的TysFoad练习建议使用C++实例运行 ——输出层=池3。我已尝试运行此操作,但出现错误: $bazel bin/tensorflow/examples/label\u image/label\u image--output\u layer=pool\u 3 I tensorflow/core/common_runtime/local_device.cc:40]本地设备操作内并行线程:4 I tensorflow/core/common_runtime/direct_session.cc:58]直接会话操作间并行线程:4 W tensorflow/core/common_runtime/executor.cc:1076]0x558ae6a5d210计算状态:无效参数:输入必须是二维的 [[Node:top_k=TopK[T=DT_FLOAT,k=5,_device=“/job:localhost/replica:0/task:0/cpu:0”](Const/_0)]] E tensorflow/examples/label_image/main.cc:311]运行打印失败:参数无效:输入必须是二维的 [[Node:top_k=TopK[T=DT_FLOAT,k=5,_device=“/job:localhost/replica:0/task:0/cpu:0”](Const/_0)]]

运行带有输出层=池3的标签图像时出错 图像识别教程中的TysFoad练习建议使用C++实例运行 ——输出层=池3。我已尝试运行此操作,但出现错误: $bazel bin/tensorflow/examples/label\u image/label\u image--output\u layer=pool\u 3 I tensorflow/core/common_runtime/local_device.cc:40]本地设备操作内并行线程:4 I tensorflow/core/common_runtime/direct_session.cc:58]直接会话操作间并行线程:4 W tensorflow/core/common_runtime/executor.cc:1076]0x558ae6a5d210计算状态:无效参数:输入必须是二维的 [[Node:top_k=TopK[T=DT_FLOAT,k=5,_device=“/job:localhost/replica:0/task:0/cpu:0”](Const/_0)]] E tensorflow/examples/label_image/main.cc:311]运行打印失败:参数无效:输入必须是二维的 [[Node:top_k=TopK[T=DT_FLOAT,k=5,_device=“/job:localhost/replica:0/task:0/cpu:0”](Const/_0)]],tensorflow,Tensorflow,我遗漏了什么?这里的问题是,--output\u layer=pool\u 3选项工作之前,需要对中的TensorFlow代码进行额外修改: < >可以通过在C++ API示例中设置 -OutPuthLeal= POOLY3/COD>来指定这一点,然后改变输出张量处理< /强> ./P> 要更改输出张量处理,需要修改代码。函数调用,它采用一个2-D(批次x类)张量,假设该张量是包含一批图像中标签的概率分布的a的输出,并使用op构建一个小的TensorFlow图。pool_3层输出四维(批次x高度

我遗漏了什么?

这里的问题是,
--output\u layer=pool\u 3
选项工作之前,需要对中的TensorFlow代码进行额外修改:

< >可以通过在C++ API示例中设置<代码> -OutPuthLeal= POOLY3/COD>来指定这一点,然后<强>改变输出张量处理< /强> ./P> 要更改输出张量处理,需要修改代码。函数调用,它采用一个2-D(批次x类)张量,假设该张量是包含一批图像中标签的概率分布的a的输出,并使用op构建一个小的TensorFlow图。
pool_3
层输出四维(批次x高度x宽度x深度)张量,这将需要额外处理

附加处理留给读者作为练习。但是,您可以尝试以下几点:

  • 将输出重塑为二维(batch x features)矩阵,并训练完全连接的层(或更多层),以识别您自己训练数据中的特征

  • 通过沿深度维度对池层进行切片,并使用op将切片编码为图像,可视化池层的输出

<>强> N.B.< /强>由于文档更好,我提供了Python文档的链接,而不是相应的C++ API。您可能会发现(更!)更容易修改