tensorflow中的常见方法

1.tf.argmax(input,axis)

tf.argmax(input,axis)根据axis取值的不同返回每行或者每列最大值的索引。

  • axis = 0:

比较每一列的元素,将每一列最大元素所在的索引记录下来,最后输出每一列最大元素所在的索引数组。

python 复制代码
test[0] = array([1, 2, 3])
test[1] = array([2, 3, 4])
test[2] = array([5, 4, 3])
test[3] = array([8, 7, 2])
# output   :    [3, 3, 1]      
  • axis = 1 :

将每一行最大元素所在的索引记录下来,最后返回每一行最大元素所在的索引数组。

python 复制代码
test[0] = array([1, 2, 3])  #2
test[1] = array([2, 3, 4])  #2
test[2] = array([5, 4, 3])  #0
test[3] = array([8, 7, 2])  #0

2.tf.placeholder(dtype, shape=None, name=None)

python 复制代码
参数:
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
name:名称

(原文链接:https://blog.csdn.net/kdongyi/article/details/82343712)

Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。 所以placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。

3.tf.multiply(x, y, name=None)

python 复制代码
参数: 
x: 一个类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量
y: 一个类型跟张量x相同的张量  

返回值: 
x * y element-wise. 
  • multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意和tf.matmul区别。
  • 两个相乘的数必须有相同的数据类型,不然就会报错

4.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)

python 复制代码
参数: 
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中的相应矩阵的乘积
  • 输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸
  • 两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128

5.tf.cast(x,dtype,name=None)

将 x 的数据格式转化成 dtype. 例如,原来 x 的数据格式是 bool,那么将其转化成 float 以后,就能够将其转化成 0 和 1 的序列。反之也可以.

python 复制代码
a = tf.Variable([0,0,0,1,1])
b = tf.cast(a,dtype=tf.bool)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run(b)) 

>>>[ False False False  True  True]
相关推荐
大白爱琴1 分钟前
使用python进行图像处理—像素级操作与图像算术(4)
开发语言·图像处理·python
吴声子夜歌1 分钟前
OpenCV——图像基本操作(一)
python·opencv·计算机视觉
zhanghongyi_cpp2 分钟前
美食出处(文件版)
python
ICscholar20 分钟前
生成对抗网络(GAN)损失函数解读
人工智能·机器学习·生成对抗网络
我不是小upper21 分钟前
L1和L2核心区别 !!--part 2
人工智能·深度学习·算法·机器学习
柠石榴30 分钟前
《机器学习》(周志华)第二章 模型评估与选择
人工智能·机器学习
工业互联网专业1 小时前
基于django+vue的健身房管理系统-vue
vue.js·python·django·毕业设计·源码·课程设计·健身房管理系统
aischang1 小时前
统信桌面专业版如何使用python开发平台jupyter
开发语言·python·jupyter·统信uos
红鼻子时代1 小时前
Django RBAC项目后端实战 - 03 DRF权限控制实现
后端·python·django·rabc
试剂界的爱马仕1 小时前
TCA 循环中间体如何改写肝损伤命运【AbMole】
大数据·人工智能·科技·机器学习·ai写作