Python中的list/tuple,numpy中的ndarrray与tensorflow中的tensor

用python中list/tuple理解,仅仅是从内存角度理解一个序列数据,而非数学中标量,向量和张量。

从python内存角度理解,就是一个数值,长度为1,并且不是一个序列;

从numpy与tensorflow数学角度理解,就是一个标量,shape为(),其轴为0;

[1,2,3,4,5,6]

从python内存角度理解,就是1*6或者长度为6的一个序列;

从numpy与tensorflow数学角度理解,就是一维向量,并且是列向量,shape为(6,),其轴为1;注:一维向量,列向量,其轴为1,轴下标为0,表示第一个轴;

[[1,2,3], [4,5,6]]

从python内存角度理解,就是一个二维数组2*3,2列3行;注意:不管python还是numpy/tensorflow都是列在前,即一个向量默认为列向量;

从numpy/tensorflow数学角度理解,就是一个二维张量,shape为(2,3),其轴为2;注:二维向量,第一个轴为列,下标为0,第二个轴为行,下标为1;


import os, sys
import numpy
import tensorflow as tf

'''
求最大值tf.reduce_max(input_tensor, reduction_indices=None, keep_dims=False, name=None)

求平均值tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)

参数(1)input_tensor:待求值的tensor。

参数(2)reduction_indices:在哪一维上求解。

参数(3)(4)可忽略


'''


a = [[1, 2, 3],
     [4, 5, 6]]

b = tf.Variable(a, dtype=tf.float32)

init = tf.global_variables_initializer()

sess = tf.Session()

sess.run(init)

d1 = tf.reduce_mean(b) #表示对矩阵所有元素进行均值;
#3.5

d2 = tf.reduce_mean(b, 0) #表示对矩阵进行第一个轴(列)方向上的投影,即每一行上的均值;
#[2.5 3.5 4.5]

d3 = tf.reduce_mean(b, 1) #表示对矩阵进行第二个轴(行)方向上的投影,即每一列的均值;
#[2. 5.]

#同理tf.reduce_max()一样

'''
[b, b[i,:], b[:, i]]
b[i,:]: 表示b矩阵第一个轴(列),第i列对应所有元素;
b[:,i]: 表示b矩阵第二个轴(行),第i行对应所有元素;
'''

sess.run([b, b[0, :], b[:, 0]])

print(sess.run(d1))
print(sess.run(d2))
print(sess.run(d3))

猜你喜欢

转载自blog.csdn.net/qq_30638831/article/details/80481437
今日推荐