第11天,Tensorflow的基本函数介绍以及使用方法
2019-03-20 23:00
405 查看
import tensorflow as tf ''' 常亮定义 tf.constant([value,dtype,shape,name]) ''' A = tf.constant(8.0,dtype = float) B = tf.constant(2.0) #C = tf.add(A,B) # 加法 C = tf.subtract(B,A) # 减法 B - A with tf.Session() as Sess: #tensorflow 执行任何函数都要用这个session来执行 D = Sess.run(C) #执行计算 print(D) #打印结果
''' 变量 tf.Variable() V要大写 ''' ''' 1.tf.multiply()两个矩阵中对应元素各自相乘 格式: tf.multiply(x, y, name=None) 参数: x: 一个类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量。 y: 一个类型跟张量x相同的张量。 返回值: x * y element-wise. 注意: (1)multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意和tf.matmul区别。 (2)两个相乘的数必须有相同的数据类型,不然就会报错。 2.tf.matmul()将矩阵a乘以矩阵b,生成a * b。 格式: tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None) 参数: a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。 b: 一个类型跟张量a相同的张量。 transpose_a: 如果为真, a则在进行乘法计算前进行转置。 transpose_b: 如果为真, b则在进行乘法计算前进行转置。 adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。 adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。 a_is_sparse: 如果为真, a会被处理为稀疏矩阵。 b_is_sparse: 如果为真, b会被处理为稀疏矩阵。 name: 操作的名字(可选参数) 返回值: 一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。 注意: (1)输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸。 (2)两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128。 ''' A = tf.Variable([1,2]) # 定义一个一维矩阵变量A B = tf.Variable([[2,2]]) # 定义一个一行两列的二维矩阵 B_1 = tf.Variable([[2],[5]]) #生成一个两行一列的矩阵 C = tf.multiply(A,B) # 矩阵各自元素相乘 D = tf.matmul(B,B_1) # 矩阵点积 必须满足矩阵点积的要求 ''' Tensorflow中 只要有变量,就必须要用初始化函数来对这些变量进行初始化 该方法是 : tf.global_variables_initializer() ,执行之后会给变量一个初始值 ''' Init = tf.global_variables_initializer() #含有变量的一定要初始化 ''' with tf.Session() as Sess: Sess.run(Init) E = Sess.run(D) print(E) ''' ''' fetch 使用方法 可以在sess.run()里边执行多个函数 注意:fetch 使用的时候sess.run([]) 里边是要以列表的形式来输入 这样输出的时候也是以列表的形式输出结果 ''' #with tf.Session() as sess: # sess.run(Init) # R = sess.run([C,D]) # print(R) ''' feed 使用方式是 在sess.run(x ,feed_dict{ x1 :[value], x2:[value]} ) 要用字典的形式来传入参数,而且要使用占位符规定一下输入参数类型,才能使用feed 占位符 tf.Placeholder(dtype,shape ,name) 从定义来讲:在 Tensorflow 当中表示输入输出数据的格式,可以说,任何的输入数据 (变量不是输入数据,而是事先设计好的参数)想要进入到 Tensorflow 计算处理当中, 都需要经过占位符,因为占位符确定了输入数据的类型,它只允许传入指定类型或是指 定形状的数据,同理,它也确定了输出数据的类型,对输出数据的格式也有要求。 简单来讲,占位符的作用就是规范输入输出的数据,制定一个格式规则, 传进来和传出去的数据必须经过这个格式规则才能成为有效数据。 另外,占位符另外一个很重要的作用是,在声明占位符后, 任何算法的引入都可以先使用占位符作为其中的一个参数,等整个算法流程完成后, 直接将输入或者输出的数据传入占位符,这些数据就会按照占位符出现的位置依次通过算法, 最后得到输出。大大简化了数据处理的流程,并且使整个算法代码具有很好的可读性。举例而言: ''' A = tf.placeholder(tf.float32,shape = [2,2]) #定义一个两行两列的占位符,等待下面输入数据 B = tf.constant([[5.0,3.0],[1.5,3.2]],dtype=tf.float32) #定义一个两行两列的常量 C = tf.multiply(A,B) # 声明A*B操作 with tf.Session() as sess: T = sess.run(C,feed_dict = {A :[[4,4],[8,8]] }) print(T)
[[20. 12. ] [12. 25.6]]
相关文章推荐
- 本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。
- javascript(js) join函数使用方法介绍
- C/C++时间函数使用方法介绍(3)
- 字节码问题--wchar和char的区别以及wchar和char之间的相互转换字符编码转换等方法及函数介绍
- PerformanceCounter 基本介绍以及示例方法
- Ant介绍以及基本使用指南
- [转载]字节码问题--wchar和char的区别以及wchar和char之间的相互转换字符编码转换等方法及函数介绍
- js中函数调用的两种常用方法使用介绍
- C/C++时间函数使用方法介绍(2)
- Ant介绍以及基本使用指南
- python 装饰器功能以及函数参数使用介绍
- 如何查看Win8安装应用以及在多设备帐户同步安装使用的方法介绍
- 专家详解DDOS攻击介绍以及使用方法
- iOS开发OC基础:OC集合NSSet、NSMutableSet以及NSCountedSet的基本方法的使用
- js中函数调用的两种常用方法使用介绍
- 对javascript基本对象的属性以及方法的实例介绍
- Delphi中用来截取字符的函数,以及使用方法?
- new与delete函数使用方法以及注意事项
- ini_set()函数的使用 以及 post_max_size,upload_max_filesize的修改方法
- Data Access Application Block(Enterprise Library 3.1)的下载以及使用方法介绍