Tensorflow 深度学习笔记(一)

Tensorflow 深度学习

2020年2月18日20:41:32

Tensor

几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。
三阶张量 shape(m,n,k),可以理解为k个大小为(m,n)的二阶张量(想像二维图片)的叠加。可以用RGB彩色图像举例。
将这一定义进行扩展,我们也可以用四阶张量表示一个包含多张图片的数据集,其中的四个维度分别是:图片在数据集中的编号,图片高度、宽度,以及色彩数据。

文章:float32和float64的本质区别

tf.contant()

tf.constant(
    value,
    dtype=None,
    shape=None,
    name='Const',
    verify_shape=False
)
  • 第一个值value是必须的,可以是一个数值,也可以是一个列表。为查看结果必须创建一个会话,并用取值函数eval()来查看创建的tensor的值:
  • 第二个参数表示数据类型,一般可以是tf.float32, tf.float64等:
  • 第三个参数表示张量的“形状”,即维数以及每一维的大小。
  • 第四个参数name可以是任何内容,只要是字符串就行。 默认为Const
  • 第五个参数verify_shape默认为False,如果修改为True的话表示检查value的形状与shape是否相符,如果不符会报错。
  • 后面四个参数可写可不写。

tf.reduce_mean()

tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。

reduce_mean(input_tensor,
                axis=None,
                keep_dims=False,
                name=None,
                reduction_indices=None)

  • 第一个参数input_tensor: 输入待降维的tensor;
  • 第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
  • 第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
  • 第四个参数name: 操作的名称;
  • 第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;

以一个维度是2,形状是[2,3]的tensor举例:

import tensorflow as tf
 
x = [[1,2,3],
      [1,2,3]]
 
xx = tf.cast(x,tf.float32)
 
mean_all = tf.reduce_mean(xx, keep_dims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)
 
 
with tf.Session() as sess:
    m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])
 
print m_a    # output: 2.0
print m_0    # output: [ 1.  2.  3.]
print m_1    #output:  [ 2.  2.]

输出都是一维或者标量
如果设置保持原来的张量的维度,keep_dims=True ,结果:

print m_a    # output: [[ 2.]]
print m_0    # output: [[ 1.  2.  3.]]
print m_1    #output:  [[ 2.], [ 2.]]
 
 
 
 

注意这时(keep_dims=True)输出的张量的表示,axis=0‘多行变一行’,axis=1‘多列变一列’。

类似函数还有:

  • tf.reduce_sum :计算tensor指定轴方向上的所有元素的累加和;
  • tf.reduce_max : 计算tensor指定轴方向上的各个元素的最大值;
  • tf.reduce_all : 计算tensor指定轴方向上的各个元素的逻辑和(and运算);
  • tf.reduce_any: 计算tensor指定轴方向上的各个元素的逻辑或(or运算);

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

x:输入
dtype:转换目标类型
name:名称
返回:Tensor
此函数是类型转换函数,将x的数据格式转化成dtype

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值