tesorflowr入门之基本概念介绍

Hello World:

import tensorflow as tf

hello = tf.constant("hello world")
sess = tf.Session()
print(sess.run(hello).decode('utf-8'))

概念介绍:

1. placeholder(占位符)

此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值

tf.placeholder(dtype, shape = None, name = None)

dytpe:占位符的数据类型。 shape:占位符的纬度,例如[2,2]代表2x2的二维矩阵,None可以代表任意维度,例如[None,2]则代表任意行数,2列的二维矩阵 。 name:占位符的名字。

变量在定义时要初始化,但可能有些变量我们一开始定义的时候并不一定知道该变量的值,只有当真正开始运行程序的时候才由外部输入,比如我们需要训练的数据,所以就用占位符来占个位置,告诉TensorFlow,等到真正运行的时候再通过输入数据赋值。 例如:就是生成了一个2x2的二维矩阵,矩阵中每个元素的类型都是tf.float32(也就是浮点型)

x = tf.placeholder(tf.float32, [2, 2])

有时候定义需要训练的参数时候,会定义一个[input_size,output_size]大小的矩阵,其中input_size是输入数据的维度,output_size是输出数据的维度。

2.Variable 变量

训练模型时,需要使用变量(Variables)保存和更新参数。

x = tf.Variable(tf.zeros([2,2])) # 声明一个2x2的矩阵,并将矩阵中的所有元素的值赋为0,默认每个元素都是tf.float32类型的数据
y = tf.Variable(1.0, tf.float32) # 声明一个tf.float32的变量,并将初始值设为1.0

我们一般还需要运行下global_variables_initializer真正在TensorFlow的Session中初始化所有变量。

3.Constant(常量)

x = tf.constant(3.0, tf.float32) # 定义一个值为3.0的浮点型常量

4.Session(会话)

TensorFlow所有的操作都必须在Session中运行,才能真正起作用,可以将Session当作TensorFlow运行的环境,Session运行完需要close

#用close()关闭
sess = tf.Session()
sess.run(...)
sess.close()

#使用with..as..语句关闭
with tf.Session() as sess:
    sess.run(...)

5.变量数值计算

import tensorflow as tf

x = tf.Variable(3, tf.int16)                // 声明一个整型变量3
y = tf.Variable(5, tf.int16)                // 声明一个整型变量5
z = tf.add(x,y)                             // z = x + y
init = tf.global_variables_initializer()    // 初始化变量的操作
with tf.Session() as sess:
    sess.run(init)                          // 在Session中初始化变量
    print(sess.run(z))                      // 输出计算出的z值

张量变量的数值计算

零维张量计算:

import tensorflow as tf

a = tf.constant(2)
b = tf.constant(3)
with tf.Session() as sess:
    print("a=2,b=3")
    print("Addition with constants: %i" % sess.run(a+b))
    print("Multiplication with constants: %i" % sess.run(a*b))
二维张量计算(是[[3,3]]而不是[3,3]):
import tensorflow as tf
matrix1 = tf.constant([[3,3]])
matrix2 = tf.constant([[2],[2]])
product = tf.matmul(matrix1,matrix2)
with tf.Session() as sess:
    result = sess.run(product)
    print(result)

占位符变量计算:

import tensorflow as tf

a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
add = tf.add(a, b)
mul = tf.multiply(a, b)
with tf.Session() as sess:
    print("addition with the constants: %i" % sess.run(add, feed_dict={a:3, b:5}))
    print("multiplication with the constants: %i" % sess.run(mul, feed_dict={a: 3, b: 5}))

变量+常量=变量

state = tf.Variable(0,name='counter')
# print(state)      # <tf.Variable 'counter:0' shape=() dtype=int32_ref>
one = tf.constant(1)

new_value = state + one
#new_value = tf.add(state, one)        # 常量加变量等于变量

update = tf.assign(state,new_value)    # 更新new_value节点值到state节点值

init = tf.global_variables_initializer()

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

Numpy和TensorFlow方法函数对比


猜你喜欢

转载自blog.csdn.net/zqnnn/article/details/80657516