TensorFlow入门教程:5:变量基础操作

在这里插入图片描述
这篇文章以几个具体的例子来说明一下如何使用tensorflow进行编码,通过简单的变量/常量的加减乘除运算来熟悉tensorflow。

例1: 使用表达式常量运算

代码片段

a = tf.constant(2)
b = tf.constant(3)
add = a + b
print("use a + b directly: a = 2,b=3")
print(tf.Session().run(add))

简要说明:
前面已经提到了tf的数据类型以及session和operation等概念,这个例子定义了两个常量,直接利用session的run函数可以对以表达式定义(a+b)的add操作进行运算,从而实现了2+3=5

例2: 使用tf函数进行常量运算

代码片段

a = tf.constant(2)
b = tf.constant(3)
add = tf.add(a,b)
print(tf.Session().run(add))

简要说明:
与例1不同的地方在于操作add的定义使用tf.add进行

例3: 变量运算与赋值

代码片段

c = tf.placeholder(tf.int32,name="c")
d = tf.placeholder(tf.int32,name="d")
print("c=2,d=0,tf.Session().run(add,feed_dict={c:2,d:0}")
print(tf.Session().run(add,feed_dict={c:2,d:0}))

简要说明:
使用placeholder预设占位符,在运算时通过feed_dict传入变量值进行运算

例4: 变量方式传递给feed_dict

代码片段

c = tf.placeholder(tf.int32,name="c")
d = tf.placeholder(tf.int32,name="d")
feed_data={c:32,d:10}
add = tf.add(c,d)
print(tf.Session().run(add,feed_dict=feed_data))

简要说明:
例3的另一种方式,通过变量的方式传递给feed_dict

例5: 表达式进行加减乘除

代码片段

a = tf.constant(2)
b = tf.constant(3)
with tf.Session() as session:
  print("a = " + str(session.run(a)))
  print("b = " + str(session.run(b)))
  print("a + b = " + str(session.run(a+b)))
  print("a - b = " + str(session.run(a-b)))
  print("a * b = " + str(session.run(a*b)))
  print("a / b = " + str(session.run(a/b)))

简要说明:
使用python的with语句,表达式的方式进行加减乘除的运算

例6: 使用tf函数进行加减乘除

代码片段

a = tf.constant(2)
b = tf.constant(3)
with tf.Session() as session:
  print("a = " + str(session.run(a)))
  print("b = " + str(session.run(b)))
  func=tf.add(a,b)
  print("a + b = " + str(session.run(func)))
  func=tf.subtract(a,b)
  print("a - b = " + str(session.run(func)))
  func=tf.multiply(a,b)
  print("a * b = " + str(session.run(func)))
  func=tf.divide(a,b)
  print("a / b = " + str(session.run(func)))

简要说明:
使用tf.add/tf.subtract/tf.multiply/tf.divide进行加减乘除,注意早期版本api有变化比如tf.sub已经不存在。

例7: 线性公式(表达式):y=w*x+b

代码片段

with tf.Session() as session:
  w=tf.constant(2)
  b=tf.constant(2)
  x=tf.placeholder(tf.int32)
  y=w*x + b
  print("y=w*x+b=" + str(session.run(y,feed_dict={x:20}))) 

简要说明:
这个简单的例子可以看出常量/变量的使用,以及变量使用placeholder进行占位以及使用feed_dict进行运行前赋值

例8: 线性公式(tf函数):y=w*x+b

代码片段

with tf.Session() as session:
  w=tf.constant(2)
  b=tf.constant(2)
  x=tf.placeholder(tf.int32)
  y=tf.add(tf.multiply(w,x),b)
  print("y=w*x+b=" + str(session.run(y,feed_dict={x:20}))) 

简要说明:
使用tf函数进行组合w*x+b的运算

例子代码

liumiaocn:Notebook liumiao$ cat basic-operation-1.py 
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

print("##Example 1: Constant: a + b")
a = tf.constant(2)
b = tf.constant(3)
add = a + b
print("use a + b directly: a = 2,b=3")
print(tf.Session().run(add))

print("\n##Example 2: use tf.add(a,b): a=2,b=3")
add = tf.add(a,b)
print(tf.Session().run(add))

print("")
print("##Example 3: feed_dict + placeholder")
c = tf.placeholder(tf.int32,name="c")
d = tf.placeholder(tf.int32,name="d")
print("c=2,d=0,tf.Session().run(add,feed_dict={c:2,d:0}")
print(tf.Session().run(add,feed_dict={c:2,d:0}))

print("\n##Example 4: feed_data={c:32,d:10}, tf.add(c,d)")
feed_data={c:32,d:10}
add = tf.add(c,d)
print(tf.Session().run(add,feed_dict=feed_data))

print("\n##Example 5: use with statement : expression")
with tf.Session() as session:
  print("a = " + str(session.run(a)))
  print("b = " + str(session.run(b)))
  print("a + b = " + str(session.run(a+b)))
  print("a - b = " + str(session.run(a-b)))
  print("a * b = " + str(session.run(a*b)))
  print("a / b = " + str(session.run(a/b)))

print("\n##Example 6: use with statement : tf.function")
with tf.Session() as session:
  print("a = " + str(session.run(a)))
  print("b = " + str(session.run(b)))
  func=tf.add(a,b)
  print("a + b = " + str(session.run(func)))
  func=tf.subtract(a,b)
  print("a - b = " + str(session.run(func)))
  func=tf.multiply(a,b)
  print("a * b = " + str(session.run(func)))
  func=tf.divide(a,b)
  print("a / b = " + str(session.run(func)))

print("\n##Example 7: y=w*x +b : expression")
with tf.Session() as session:
  w=tf.constant(2)
  b=tf.constant(2)
  x=tf.placeholder(tf.int32)
  y=w*x + b
  print("y=w*x+b=" + str(session.run(y,feed_dict={x:20})))   

print("\n##Example 8: y=w*x +b : tf.function")
with tf.Session() as session:
  w=tf.constant(2)
  b=tf.constant(2)
  x=tf.placeholder(tf.int32)
  y=tf.add(tf.multiply(w,x),b)
  print("y=w*x+b=" + str(session.run(y,feed_dict={x:20})))   
liumiaocn:Notebook liumiao$

执行结果

liumiaocn:Notebook liumiao$ python basic-operation-1.py 
##Example 1: Constant: a + b
use a + b directly: a = 2,b=3
5

##Example 2: use tf.add(a,b): a=2,b=3
5

##Example 3: feed_dict + placeholder
c=2,d=0,tf.Session().run(add,feed_dict={c:2,d:0}
5

##Example 4: feed_data={c:32,d:10}, tf.add(c,d)
42

##Example 5: use with statement : expression
a = 2
b = 3
a + b = 5
a - b = -1
a * b = 6
a / b = 0

##Example 6: use with statement : tf.function
a = 2
b = 3
a + b = 5
a - b = -1
a * b = 6
a / b = 0.6666666666666666

##Example 7: y=w*x +b : expression
y=w*x+b=42

##Example 8: y=w*x +b : tf.function
y=w*x+b=42
liumiaocn:Notebook liumiao$ 

总结

当然,tensorflow不是用来做加减乘除的,常见的模型的积木化,调用简单,在后续的实例中将可以清晰地看到这一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值