接口测试的核心概念是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~