作者:mobiledu2502884897 | 来源:互联网 | 2023-10-17 10:14
一、tf.transpose函数的用法tf.transpose(input,[dimension_1,dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同
一、tf.transpose函数的用法
tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同维度用的,如果输入张量是二维,就相当是转置。dimension_n是整数,如果张量是三维,就是用0,1,2来表示。这个列表里的每个数对应相应的维度。如果是[2,1,0],就把输入张量的第三维度和第一维度交换。
import numpy as np
import tensorflow as tf
A = np.array([[1,2,3],[4,5,6]])
x = tf.transpose(A, [1,0])
B = np.array([[[1,2,3],[4,5,6]]])
y = tf.transpose(B, [2,1,0])
with tf.Session() as sess:
print("A:\n",A)
print("new_A:\n",sess.run(x))
print("B:\n",B)
print("new_B:\n",sess.run(y))
A:
[[1 2 3]
[4 5 6]]
new_A:
[[1 4]
[2 5]
[3 6]]
B:
[[[1 2 3]
[4 5 6]]]
new_B:
[[[1]
[4]]
[[2]
[5]]
[[3]
[6]]]
分析理解:对于第一个二维矩阵A来说就比较简单了,就是普通的转置。对于第二个三维变量B,在转置前可以理解为是1片2*3的矩阵,而转置操作要求第一维和第三维置换,那就是要变成3片2*1的矩阵,这样就好理解了,输出结果正是3片1*2的矩阵。
二、tf.argmax函数用法
该函数就是找出每行或者每列的最大值所在的索引值,第二个参数为表示按行查找还是按列查找,1-按行,0-按列。
import tensorflow as tf
C=[[9,8,3],[1,7,2]]
with tf.Session() as sess:
print(sess.run(tf.argmax(C,1)))
[0 1]
三、tf.equal函数
vimport tensorflow as tf
import numpy as np
A = [[1,3,4,5,6]]
B = [[1,3,4,3,2]]
with tf.Session() as sess:
print(sess.run(tf.equal(A, B)))
输出: [[ True True True False False]]
四、tf.reduce_mean函数
A = [[1,3,4,5,6]]
B = [[1,3,4,3,2]]
correctPred=tf.equal(A,B)
accuracy = tf.reduce_mean(tf.cast(correctPred, tf.float32))
with tf.Session() as sess:
print(sess.run(accuracy))
输出:0.6
解析:根据上述输出,3个为True,所以accuracy=3/5=0.6