为了账号安全,请及时绑定邮箱和手机立即绑定

Tensorflow - 迭代两个张量

Tensorflow - 迭代两个张量

海绵宝宝撒 2021-08-17 18:29:12
我有两个相似的张量;一个拥有所有找到的有效框,另一个拥有它们所属的所有索引。Tensor("valid_boxes:0", shape=(?, 9), dtype=float32)Tensor("valid_boxes_indexes:0", shape=(?, 4), dtype=int64)我需要一个map_fun访问这两个变量的。我试过这个:operation = tf.map_fn(lambda x: generate_bounding_box(x[0], x[1][1], x[1][0], x[1][2], grid_h, grid_w, anchors), (valid_boxes, valid_boxes_indexes))Tensorflow 给了我以下内容:ValueError: 这两个结构没有相同的嵌套结构。第一个结构:type=tuple str=(tf.float32, tf.int64)第二种结构:type=Tensor str=Tensor("map_14/while/stack:0", shape=(5,), dtype=float32)更具体地说:子结构 "type=tuple str=(tf.float32, tf.int64)" 是一个序列,而子结构 "type=Tensor str=Tensor("map_14/while/stack:0", shape=(5,) , dtype=float32)" 不是有没有办法正确地做到这一点?
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

dtype当输入和输出值不具有相同的结构时,您需要指定 a 。从文档tf.map_fn:


此外,fn可能会发出与其输入不同的结构。例如,fn可能看起来像:fn = lambda t1: return (t1 + 1, t1 - 1)。在这种情况下,dtype参数不是可选的:dtype必须是与fn.


试试这个:


operation = tf.map_fn(

    lambda x: generate_bounding_box(x[0], x[1][1], x[1][0], x[1][2],

                                    grid_h, grid_w, anchors),

    (valid_boxes, valid_boxes_indexes)

    dtype=tf.float32)


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号