tensorflow在map_fn步骤中创建变量。

有什么方法可以在map_fn循环中创建变量,就像下面的代码一样? 我如何解决这个错误,同时在循环中保留一个变量? 信息日志也没有真正帮助我,所以我是否在这里得到了任何tensorflow的概念根本错误?tensorflow 1.14.0, python 3.6.8] 。

import tensorflow as tf


### function called in map_fn
def opt_variable(theta):
    init_theta = lambda: theta
    var_theta = tf.get_variable(dtype=tf.float32, initializer=tf.Variable(init_theta))
    ### ... other steps which need variable type to optimize
    return tf.constant(3.)  # some return


def iterate_over_cols(theta):
    iter_cols = tf.range(5)
    map_theta = tf.map_fn(lambda x: (opt_variable(theta[x])),
iter_cols, dtype=tf.float32 )
    return map_theta


### example run
t_test = tf.convert_to_tensor([1.4, 3.1, 4.6, 6.3], dtype=tf.float32)
iterate_over_cols(t_test)

导致这个错误。

ValueError: 不能使用’map_18whilestrided_slice’作为’map_18whileVariableAssign’的输入,因为’map_18whilestrided_slice’处于一个while循环中。详情请看信息日志。

解决方案:

在这个版本中,你似乎不能使用嵌套的while循环,这意味着你不能将一个map_fn的输出作为另一个map_fn的输入。

给TA打赏
共{{data.count}}人
人已打赏
未分类

用pytest编写实例方法单元测试的正确方法。

2022-9-9 0:44:38

未分类

强制JQuery $(document).ready等待承诺解析。

2022-9-9 0:44:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索