tensorflow使用

1.1 计算图的概念
计算图是tensorflow中最基本的一个概念,tensorflow中的所有计算都会被转化为计算图上的节点。
tensorflow的名字中已经说明了它的最重要的两个概念–tensor和flow。
tensor就是张量。在tensorflow里,张量可以被简单地理解为多维数组。
flow体现了它的计算模型。直观的表达了张量之间通过计算相互转化的过程。
tensorflow是一个通过计算图的形式来表述计算的编程系统。
tensorflow中的每一个计算都是计算图上的节点,而节点之间的边描述了计算之间的依赖关系。

1.2 Tensorflow数据模型–张量
零阶张量表示标量(scalar),也就是一个数;
第一阶张量为向量(vector),也是一个一位数组;
第n阶张量可以理解为一个n维数组;
这是从功能的角度上看,张量可以简单的理解为多维数组。

张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。

张量主要保存三个属性:名字(name)、维度(shape)和类型(type)。

  • 名字:是张量的唯一标识符,也给出了这个张量如何计算出来。计算图的每一个节点代表了一个计算,计算的结果就保存在张量之中,所以张量和计算图上节点所代表的计算结果是对应的。
  • 维度:描述了张量的维度信息。
  • 类型:每一个张量会有一个唯一的类型。
import tensorflow as tf

state = tf.Variable(0, name='counter')
print(state.name)

one = tf.constant(1)

new_value = tf.add(state, one)  #  变量 + 常量 = 变量
update = tf.assign(state, new_value)

init = tf.initialize_all_variables()  # must have if define variable

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

import tensorflow as tf
import numpy as np

x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

Weights = tf.Variable(tf.random_uniform([1], -0.1, 0.1))  # 随机变量从 -1 到 1 的数
biases = tf.Variable(tf.zeros([1]))  # 等于0的数

y = Weights * x_data + biases

loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

init = tf.initialize_all_variables()  # 初始化所有变量

sess = tf.Session()
sess.run(init)  # tensorflow开始被激活
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))

参考
https://blog.csdn.net/zw0pi8g5c1x/article/details/81008935

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页