tensorflow框架学习之placeholder 与variable

  1. placeholder —占位符
    参考莫烦PYTHON视频P12
    placeholder, 译为占位符,官方说法:”TensorFlow provides a placeholder operation that must be fed with data on execution.” 即必须在执行时feed值。
    placeholder 实例通常用来为算法的实际输入值作占位符。
    例如
    Tensorflow 如果想要从外部传入data, 那就需要用到 tf.placeholder(), 然后以这种形式传输数据 sess.run(***, feed_dict={input: **}).

示例:

import tensorflow as tf

#在 Tensorflow 中需要定义 placeholder 的 type ,一般为 float32 形式

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)

#mul=multiply是将input1和input2做乘法运算,并输出为output

ouput = tf.multiply(input1, input2)

接下来, 传值的工作交给了 sess.run() , 需要传入的值放在了feed_dict={} (这在python中相当于一本字典)并一一对应每一个 input. placeholder 与 feed_dict={} 是绑定在一起出现的。

with tf.Session() as sess:
    print(sess.run(ouput, feed_dict={input1: [7.], input2: [2.]}))
输出
#[14.]
  1. variable —变量
    参考:莫烦PYTHON视频P11
    在 Tensorflow 中,定义了某字符串是变量,它才是变量,这一点是与 Python 所不同的。
    定义语法: state = tf.Variable()
import tensorflow as tf
state = tf.Variable(0, name='counter')

#定义常量one

one = tf.constant(1)

#定义加法步骤(注:此步并没有直接计算)

new_value = tf.add(state, one)

#将state更新为new_value

update = tf.assign(state, new_value)

如果你在 Tensorflow 中设定了变量,那么初始化变量是最重要的!!所以定义了变量以后, 一定要定义

 init = tf.initialize_all_variables() .

到这里变量还是没有被激活,需要再在 sess 里,

sess.run(init) 

激活 init 这一步.

#如果定义variable,就一定要initialize
#init = tf.initialize_all_variables() # tf 马上就要废弃这种写法
init = tf.global_variables_initializer() # 替换成这样就好

#使用session

with tf.Session() as sess:
    sess.run(init)
    for _ in range(3):
        sess.run(update)
        print(sess.run(state))

注意:直接 print(state) 不起作用!!
一定要把 sess 的指针指向 state 再进行 print 才能得到想要的结果!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值