我正在尝试使用比3更多通道的tensorflow API检测。我按照这个git https://github.com/minhnhat93/tf_object_detection_multi_channels的步骤进行了操作,但我认为tensorflow已经做了一些更新,所以代码不起作用。事实上,我尝试使用4个频道并收到此错误:
INFO:tensorflow:启动队列。 2018-06-06 09:32:59.883758:W tensorflow / core / framework / op_kernel.cc:1318] OP_REQUIRES失败了 queue_ops.cc:105:参数无效:元组组件中的形状不匹配 16.预期[1,?,?,3],得到[1,202,249,4] INFO:tensorflow:向协调员报告错误:,形状 元组件16不匹配。预期[1,?,?,3],得到[1,202,249,4] [[节点:batch / padding_fifo_queue_enqueue = QueueEnqueueV2 [Tcomponents = [DT_STRING,DT_INT32,DT_FLOAT,DT_INT32, DT_FLOAT,...,DT_INT32,DT_INT32,DT_INT32,DT_STRING,DT_INT32], timeout_ms = -1, _device = “/作业:本地主机/复制:0 /任务:0 /装置:CPU:0”](批次/ padding_fifo_queue,
(我不会显示所有错误很长)
我认为错误来自于我更改的文件object_detection / data_decoders / tf_example_decoder.py中的修改:
image = slim_example_decoder.Image(image_key='image/encoded', format_key='image/format', channels=3 )
by:
image=slim_example_decoder.ItemHandlerCallback(keys=['image/encoded', 'image/height', 'image/width', 'image/channels'], func=self._read_image)
事实上,当我尝试使用3个通道(jpg图像)的代码时,它也不起作用。所以我认为这条线是问题,但我没有成功解决它。我试图强制使用channels = 4,但它不起作用。
有人有想法解决这个问题吗?