TensorFlow2.0

1 使用技巧

  1. 更新到最新版本:

    pip install --upgrade tensorflow
    pip install --upgrade tensorflow-gpu
  2. 导入TensorFlow模块:

    import tensorflow as tf
  3. 查看版本号:

    print('TensorFlow版本号为:', tf.__version__)
  4. 查看是否支持GPU运算:

    rint('GPU是否可用:', tf.test.is_gpu_available())
    print('GPU设备名称:', tf.test.gpu_device_name())
  5. 查看模式:

    print('是否为动态模式(EagerExecution):', tf.executing_eagerly())
  6. 在TensorFlow2.0环境中,运行TensorFlow1.x版本:

    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()

2 TensFlow基础

1 创建张量

  1. 创建张量Tensor对象:

    tf.constant(value, dtype, shape)
    • value:数字、Python列表、Numpy数组
    • dtype:元素的数据类型
    • shape:张量的形状
    tf.convert_to_tensor(数组/列表/数字/布尔型/字符串)
  2. 判断数据对象是否为张量:

    tf.is_tensor(x)
    • x:数据对象
  3. Python验证数据对象是否为张量:

    isinstance(x)
    • x:数据对象
  4. 张量转换为Numpy数组:

    x.numpy()
    • x:TensorFlow的张量
  5. 张量元素的数据类型:

    数据类型 描述
    tf.int8 8位有符号整数
    tf.int16 16位有符号整数
    tf.int32 32位有符号整数
    tf.int64 64位有符号整数
    tf.uint8 8位无符号整数
    tf.float32 32位浮点数
    tf.float64 64位浮点数
    tf.string 字符串(非Unicode编码的字节数组)
    tf.bool 布尔型
    tf.complex64 复数,实部和虚部分别为32位浮点型
  6. 更改元素的数据类型:

    tf.cast(x, dtype)
    • x:TensorFlow的张量
    • dtype:目标类型

    注:

    1. 在进行数据类型转换时,一般是将低精度的数据类型向高精度转换,否则可能发生数据溢出,得到错误的结果。
    2. 布尔型转为整型,0:False, 1:True;
    3. 整型变量转换为布尔型,将非0数字都视为True。

2 维度变换改变张量的形状:

  1. 改变张量的形状:

    tf.reshape(tensor, shape)
    • tensor:原始张量
    • shape:目标张量的形状

    注:shape参数等于-1时,自动推导出长度。

  2. 增加张量的维度:

    tf.expand(input, axis)
    • input:输入的张量
    • axis:增加的轴位置
  3. 删除张量维度

    tf.squeeze(input, axis)

    注:只能删除长度为1的维度

  4. 交换张量的维度:

    tf.transpose(x, perm)
    • x:原始张量
    • perm:各个轴的顺序
  5. 拼接张量:

    tf.concat(tensors, axis)
    • tensors:列表,包含所有需要拼接的张量
    • axis:制定在哪个轴上拼接
  6. 分割张量

    tf.spllt(value, num_or_size_splits, axis=0)
    • value:待分割的张量
    • num_or_size_splits:分割的方案
    • axis:指定按照哪个轴进行分割

    注:图像的分割与拼接,改变的是张量的视图,张量的存储顺序并没有改变。

  7. 张量的堆叠

    tf.stack(values, axis)
    • values:要堆叠的多个张量
    • axis:指定插入新维度的位置
  8. 张量分解

    tf.unstack(values, axis)
    • values:要分解的张量
    • axis:指定要分解的轴

3 部分采样

  1. 索引

    x[:][:]
  2. 切片

    x[起始位置:结束位置:步长]

    注:

    1. 起始位置:结束位置,是前闭后开的 ,切片中不包含结束位置。
    2. 起始位置、结束位置、步长都可以省略。
    3. 步长可以是负数,这时起始位置的索引号,应该大于结束位置。
    4. 纬度之间用逗号隔开。
  3. 数据提取

    根据索引,抽取没有规律的、特定的数据。

    tf.gather(params, axis, indices)
    • params:原始张量
    • axis:说明在哪个轴上采样
    • indices:索引值列表

    同时采样多个点:

    tf.gather_nd(params, indices)
    • params:原始张量
    • indices:采样点的位置

4 张量运算

  1. 基本数学运算

    算术操作 描述 公式
    tf.add(x, y) 将x和y逐元素相加 \(x+y\)
    tf.subract(c, y) 将x和y逐元素相减 \(x-y\)
    tf.multiply(x, y) 将x和y逐元素相乘 \(x\times y\)
    tf.divide(x, y) 将x和y逐元素相除 \(\frac{x}{y}\)
    tf.math.mod(x, y) 对x和y逐元素取模 \(\sqrt{x^2+y^2}\)
  2. 幂指对数运算

    算术操作 描述 公式
    tf.pow(x, y) 对x求y的幂次方 \(x^y\)
    tf.square(x) 对x逐元素求平方 \(x^2\)
    tf.sqrt(x) 对x逐元素求开平方 \(\sqrt{x}\)
    tf.exp(x) 计算e的x次方 \(e^x\)
    tf.math.log(x) 计算x的自然对数(底数为e) \(\log_{e}{x}\)
  3. 其他运算

    函数 描述
    tf.sign(x) 返回x的符号
    tf.abs() 对x逐元素求绝对值
    tf.negative(x) 对x逐元素求相反数
    tf.reciprocal(x) 取x的倒数
    tf.logical_not(x) 对x逐元素求的逻辑非
    tf.ceil(x) 向上取整
    tf.floor(x) 向下取整
    tf.rint(x) 取最接近的整数
    tf.round(x) 对x逐元素求舍入最接近的整数
    tf.maximum(x, y) 返回两个向量中的最大值
    tf.minimum(x, y) 返回两个向量中的最小值
  4. 三角函数和反三角函数运算

    函数 描述
    tf.cos(x) 三角函数cos
    tf.sin(x) 三角函数sin
    tf.tan(x) 三角函数tan
    tf.acos(x) 反三角函数arccos
    tf.asin(x) 反三角函数arcsin
    tf.atan(x) 反三角函数arctan

待更新...


最新文章

  1. Oracle中已有数据的字段类型修改
  2. textField和textView限制输入条件
  3. WebStorm工具插件下载安装
  4. ecshop 用户名和邮箱都能登陆
  5. AIX 第7章 指令记录
  6. [Objective-c 基础 - 3.1] 内存管理
  7. Delphi中判断WebBrowser的页面是否加载完成
  8. android 6.0特性翻译 --渣渣
  9. xrdp远程 & watchdog 启用与测试 & WebRTC
  10. IE浏览器下a标签嵌套img标签默认带有边框
  11. android_Intent对象初步(Activity传统的价值观念)
  12. ICMP:Internet控制报文协议
  13. JAVA学习课第二十八届(多线程(七))- 停止-threaded多-threaded面试题
  14. linux连接mysql 出现Access denied for user 'root'@'localhost'(using password: YES)错误解决方案
  15. 关于BufferedReader的readLine方法遇到的坑
  16. babel基本用法
  17. Vue--学习过程中遇到的坑
  18. HBase在共享经济互联网业务的应用
  19. Hadoop 管理工具HUE配置-HBase配置
  20. POJ3261-Milk Patterns-后缀数组

热门文章

  1. Python——requests模块
  2. Redis 数据迁移 & 数据审计
  3. python之字符串split和rsplit的方法
  4. hdu 4497 GCD and LCM (非原创)
  5. console.dir()可以显示一个对象所有的属性和方法
  6. HDU 6155 Subsequence Count(矩阵 + DP + 线段树)题解
  7. Gym 101128F Landscaping(网络流)题解
  8. hihoCoder Challenge 1
  9. reCAPTCHA OCR 详解 , 验验证, OCR(光学自动识别)
  10. .NET 面试题: C# override && overloading (C# 覆写 && 重载)