《tensorflow学习》笔记二——TensorFlow的使用

本篇文章主要介绍tensorflow的一些相关概念和使用方法。

1、tf.Variable()的使用,简单实例

import tensorflow as tf

x = tf.Variable(3, name='x') #创建变量tf的一个变量
y = tf.Variable(4, name='y')
f = x*x*y + y + 2

# 在with块内部,session被设置为默认的session
with tf.Session() as sess:
    x.initializer.run()     # 等价于 tf.get_default_session().run(x.initializer)
    y.initializer.run()
    result = f.eval()       # 等价于 tf.get_default_session().run(f)
    print(result)

2、改进的tf,不对每个变量分别进行初始化,而使用全局变量初始化,在需要运行的时候再初始化参数

import tensorflow as tf

x = tf.Variable(3, name='x')
y = tf.Variable(4, name='y')
f = x*x*y + y + 2

# 可以不分别对每个变量去进行初始化
# 并不立即初始化,在run运行的时候才初始化
init = tf.global_variables_initializer()

with tf.Session() as sess:
    init.run()
    result = f.eval()

print(result)

3、tf的变量生存的周期

import tensorflow as tf

# 当去计算一个节点的时候,TensorFlow自动计算它依赖的一组节点,并且首先计算依赖的节点
w = tf.constant(3)
x = w + 2
y = x + 5
z = x * 3

with tf.Session() as sess:
    print(y.eval())
    # 这里为了去计算z,又重新计算了x和w,除了Variable值,tf是不会缓存其他比如contant等的值的
    # 一个Variable的生命周期是当它的initializer运行的时候开始,到会话session close的时候结束
    print(z.eval())

# 如果我们想要有效的计算y和z,并且又不重复计算w和x两次,我们必须要求TensorFlow计算y和z在一个图里
with tf.Session() as sess:
    y_val, z_val = sess.run([y, z])
    print(y_val)
    print(z_val)

4、tf中placeholder节点的使用

      顾名思义,placeholder即占位符,这些节点并不做真正的计算,而是在计算的过程中需要它们输出数据的时候输出即可。在此过程中,你可指定输入的数据的维度,也可以不提前指定大小。

import tensorflow as tf
A = tf.placeholder(tf.float32, shape=(None, 3)) #tf.float32是指传入的数据形式是float32类型,shape是传入数据的大小
B = A + 5                                       #此处None表示任意大小,3表示输入数据的维度

with tf.Session() as sess:
    B_val_1 = B.eval(feed_dict={A: [[1, 2, 3]]})
    B_val_2 = B.eval(feed_dict={A: [["4", 5, 6], [7, 8, 9]]})

print(B_val_1)
print(B_val_2)

猜你喜欢

转载自blog.csdn.net/qq_40657670/article/details/80917437