tensorflow实现一个求解阶乘的代码(以及控制依赖tf.control_dependencies)

tf.control_dependencies的用法

# 需求三:实现一个求解阶乘的代码
# 方法一
# 1.定义变量
sum = tf.Variable(1, dtype=tf.int32)

# 2.定义一个占位符
i = tf.placeholder(dtype=tf.int32)

# 3.变量更改
tmp_sum = sum*i
assign_op = tf.assign(sum, tmp_sum)

# 4.变量初始化操作
init_op = tf.global_variables_initializer()

# 5.运行
with tf.Session() as sess:
    sess.run(init_op)
    for j in range(1, 6):
        # 执行更新操作
        sess.run(assign_op, feed_dict={i: j})

    print("5!={}".format(sess.run(sum)))
'''


'''
# 方法二:用了tensorflow的控制依赖tf.control_dependencies
# 1.定义变量
sum = tf.Variable(1, dtype=tf.int32)

# 2.定义一个占位符
i = tf.placeholder(dtype=tf.int32)  # i就是一个张量

# 3.变量更改
tmp_sum = sum*i  # 此处乘法直接写的    等价于tmp_sum = tf.multiply(sum, i)   

assign_op = tf.assign(sum, tmp_sum)  # 更新sum值时,是没有数据流的,依赖关系用虚线表示,如果是实线就不是有向无环图了
with tf.control_dependencies([assign_op]):
    # 如果需要执行这个代码块中的内容,必须先执行control_dependencies中给定的操作/tensor
    sum = tf.Print(sum, data=[sum, sum.read_value()], message='sum:')  # tf.Print就是打印日志(sum的值的相关日志),
    # 打印格式自己定,就是data参数值的格式。tf.Print能运行出日志结果的前提是Session的config参数中log_device_placement得是True
    ''
    data=[sum, sum.read_value()]的执行结果
    sum:[1][1]
    sum:[2][2]
    sum:[6][6]
    sum:[24][24]
    sum:[120][120]
    ''

# 4.变量初始化操作
init_op = tf.global_variables_initializer()

# 5.运行
with tf.Session(config=tf.ConfigProto(log_device_placement=True, allow_soft_placement=True)) as sess:
    sess.run(init_op)
    for j in range(1, 6):
        # 执行更新操作
        r = sess.run(sum, feed_dict={i: j})
        # 通过control_dependencies可以指定依赖关系,这样的话,就不用管内部的更新操作了
    print("5!={}".format(r))
'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值