tensorflow中fetch/feed用法

fetch用法

fetch:在会话中,可以同时执行多个op,得到运行结果。
使用方法:sess.run([op1,op2,…,opn])
练习:使用fetch同时运行多个op

import tensorflow as tf

#定义三个常量
input1=tf.constant(5.0)
input2=tf.constant(2.0)
input3=tf.constant(3.0)

#定义乘法op、加法op
add=tf.add(input2,input3)
mul=tf.multiply(input1,add)

#定义会话
with tf.Session() as sess:
    #fetch:run中可以同时运行多个op,用[]括起来即可
    result=sess.run([mul,add])
    print(result)

运行结果:[25.0, 5.0]

feed用法

首先介绍一下tensorflow中的占位符。所谓占位符,就是不知道需要计算的数据具体是什么,提前给要处理的数据占一个位置,在会话中运行的时候再把具体的数据传入。在tensorflow中使用placeholder来定义占位符。

#定义一个占位符input1,将来在会话中运行的时候传入的数据是float32类型
input1=tf.placeholder(tf.float32)

定义好占位符之后,在会话中运行op的时候,把需要处理的数据传入即可。
tensorflow中的feed就表示,在会话运行的时候中喂入数据。
注意:
(1)使用feed时,需要提前定义占位符
(2)使用feed喂入数据时,传入数据使用的是字典的形式
feed的使用方法:

sess.run(output,feed_dict={input1:[3.0],input2:[2.0]})

练习:使用feed喂入数据

import tensorflow as tf

#定义两个占位符
input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
#定义乘法op
#传入的数值是不确定的,只是用input1和input2占一个位置,在运行乘法op的时候传入数据
output=tf.multiply(input1,input2)

#定义会话
with tf.Session() as sess:
   #feed的数据以字典的形式传入
    print(sess.run(output,feed_dict={input1:[3.0],input2:[2.0]}))

运行结果:[6.]

你可能感兴趣的:(深度学习)