tensorflow(一) 介绍及基本操作

一、tensorflow介绍

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器学习和深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。(来源百度百科:https://baike.baidu.com/item/TensorFlow/18828108?fr=aladdin
二、tensorflow中的一些基本概念
1 、图(Graph):用来表示计算任务,也就我们要做的一些操作。
2 、会话(Session):建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,一个会话可以有多个图,通过执行这些图得到结果。如果把每个图看做一个车床,那会话就是一个车间,里面有若干个车床,用来把数据生产成结果。
3、 Tensor:用来表示数据,是我们的原料。
4 、变量(Variable):用来记录一些数据和状态,是我们的容器。
5、 feed和fetch:可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据。相当于一些铲子,可以操作数据。
形象的比喻是:把会话看做车间,图看做车床,里面用Tensor做原料,变量做容器,feed和fetch做铲子,把数据加工成我们的结果。

三、tensorflow变量初始化

//引入包
import tensorflow as tf
//定义变量
w = tf.Variable([[0.5,1.0]])
x = tf.Variable([[2.0],[1.0]])
//做矩阵乘
y = tf.matmul(w,x)
//这里不能之间打印y
print(y)
//直接打印y的结果,并没有值
Tensor("MatMul:0", shape=(1, 1), dtype=float32)

//初始化变量
init_op = tf.global_variables_initializer()
//定义并运行会话
with tf.Session() as sess:
    sess.run(init_op)
    //保存一些sess的内容
    save_path = saver.save(sess,"C://tensorflow")
    //打印y
    print(y.eval())

//输出正常结果
[[ 2.]]

四、tensorflow一些函数

tf.zeros([3,4],int32)
tf.ones([2,3],int32)

//tensor is[[1,2,3],[4,5,6]]
tf.zeros_like(tensor) ==>[[0,0,0],[0,0,0]]

tensor = tf.constant([1,2,3,4,5]) ==>[1 2 3 4 5]

tensor = tf.constant(-1.0,shape=[2,3]) ==> [[-1.,-1.,-1.],[-1.,-1.,-1.]]

tf.linspace(10.0,12.0,3,name = "linspace")==>[10.0 11.0 12.0]

tf.range(3,18,3)==>[3,6,9,12,15]

一个简单的例子

norm = tf.random.normal([2,3],mean = -1,stddev=4)
c = tf.constant([[1,2],[3,4],[5,6]])
shuff = tf.random_shuffle(c)
sess = tf.Session()
print(sess.run(norm))
print(sess.run(shuff))

小程序:循环三次,每次加1并输出结果

import tensorflow as tf
state = tf.Variable(0)
//加1操作
new_value = tf.add(state,tf.constant(1))
//将new_value的值赋给state
update = tf.assign(state,new_value)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(state))
    for _ in range(3):
        sess.run(update)
        print(sess.run(state))

convert_to_tensor

import numpy as np
a = np.zeros((3,3))
//将numpy的一些数据转换为tensorflow能用的类型
ta = tf.convert_to_tensor(a)
with tf.Session() as sess:
    print(sess.run(ta))
//输出结果
[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

placeholder 先在sess里面占据一块空间,可以到用的时候再进行赋值

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1,input2)
with tf.Session() as sess:
    //在字典里面赋值
    print(sess.run([out[ut],feed_dict={input1:[7.],input2:[2.]}))

猜你喜欢

转载自blog.csdn.net/Missayaaa/article/details/80052050