TensorFlow入门(tensorflow入门显卡)

网友投稿 246 2022-08-26


TensorFlow入门(tensorflow入门显卡)

tensorflow的运行机制属于“定义”与“运行”相分离,tensorflow定义的内容都在“图”这个容器中完成,关于图有几点需要理解的。1、一个“图”代表一个计算任务2、在模型运行的环节中,“图”在会话(session)里被启动3、session将图的节点操作发布到CPU GPU上,同时提供OP的方法

也就是说在tensorflow中定义的时候,其实就只是定义了图,图是静态的,在定义完成之后是不会运行的

**想让进行 图 中的节点操作,就需要使用运行函数 tf.Session.run,才能开始运行**

MO平台运行(例子):

import tensorflow as tfimport os#忽略日志级别2以下的日志os.environ['TF_CPP_MIN_LOG_LEVEL']='2'#以上代码用于忽略级别 2 及以下的消息(级别 1 是提示,级别 2 是警告,级别 3 是错误)。def init_Check(): #创建temsor的持久化常量 messsage = tf.constant("runing~") #使用with简化关流 with tf.Session() as sess: #这里输出的是字节字符串,要删除字符串引号和“b”(表示字节,byte)只保留单引号内的内容,可以使用 decode() 方法 print(sess.run(messsage).decode("UTF-8"))if __name__ == "__main__": init_Check()

计算图:是包含节点和边的网络。本节定义所有要使用的数据,也就是张量(tensor)对象(常量、变量和占位符),同时定义要执行的所有计算,即运算操作对象(Operation Object,简称 OP)。每个节点可以有零个或多个输入,但只有一个输出。网络中的节点表示对象(张量和运算操作),边表示运算操作之间流动的张量。计算图定义神经网络的蓝图,但其中的张量还没有相关的数值。为了构建计算图,需要定义所有要执行的常量、变量和运算操作。例如两个向量相加的计算图:

demo1:

def v_add(): #定义图的片段 v_1 = tf.constant([1,2,3,4,5]) v_2 = tf.constant([5,4,3,2,1]) v_all= tf.add(v_1, v_2) with tf.Session() as sess: print(sess.run(v_all))if __name__ == "__main__":#会话运行图 v_add()

使用with无需手动关闭会话,隐式关闭

demo2:

def v_add_InteractiveSession(): # tf.InteractiveSession 将比 tf.Session 更方便。InteractiveSession 使自己成为默认会话,需要关闭会话 sess = tf.InteractiveSession() v_1 = tf.constant([1,2,3,4,5]) v_2 = tf.constant([5,4,3,2,1]) d = tf.add(v_1, v_2) print(d.eval()) sess.close()if __name__ == "__main__": v_add_InteractiveSession()

使用InteractiveSession创建的默认会话,需要关闭会话,但是比Session方便

常量、变量以及占位符

Tensorflow常见的支持的数据类型:

张量,可理解为一个 n 维矩阵,所有类型的数据,包括标量、矢量和矩阵等都是特殊类型的张量。

TensorFlow 支持以下三种类型的张量:

常量:

t_1 = tf.constant(4)

t_2 = tf.constant([4,3,2])

要创建一个所有元素为零的张量,可以使用 tf.zeros() 函数。这个语句可以创建一个形如 [M,N] 的零元素矩阵,数据类型(dtype)可以是 int32、float32 等:

tf.zeros([M,N],tf.dtype)

例如:

zero_t = tf.zeros([2,3],tf.int32)

还可以创建与现有 Numpy 数组或张量常量具有相同形状的张量常量:

def Matrix_likeMatrix(): sess = tf.InteractiveSession() #生成初始值为1的矩阵,或者初始为0的矩阵 Matrix1 = tf.ones([9,9], tf.int32) Matrix4 = tf.zeros([18,18], tf.int32) #克隆shape相同的1或0的矩阵 Matrix2 = tf.ones_like(Matrix1) Matrix3 = tf.zeros_like(Matrix2) print(sess.run(Matrix1)) print(sess.run(Matrix2)) print(sess.run(Matrix3)) print(sess.run(Matrix4)) sess.close()if __name__ == "__main__": Matrix_likeMatrix()

在一定范围内生成一个从初值到终值等差排布的序列:相应的值为 (stop-start)/(num-1)。例如:

tf.linspace(start,stop,num)#num设置步长

#range_t = tf.linspace(2.0,5.0,5)#We get:[2. 2.75 3.5 4.25 5.]

从开始(默认值=0)生成一个数字序列,增量为 delta(默认值=1),直到终值(但不包括终值):下面给出实例:

tf.range(start,limit,delta)

例子:

def Number_sequence(): #只有一个参数的时候表示以1为增量,从0到n,两个参数的时候表示m~n,增量为1,三个参数最后一个表示增量 num_se = tf.range(10,50,4) with tf.Session() as sess: print(sess.run(num_se))if __name__ == "__main__": Number_sequence()


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python的tensorflow基础
下一篇:Java实现英文猜词游戏的示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~