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

待更新...


TensorFlow2.0使用方法的更多相关文章

  1. Google工程师亲授 Tensorflow2.0-入门到进阶

    第1章 Tensorfow简介与环境搭建 本门课程的入门章节,简要介绍了tensorflow是什么,详细介绍了Tensorflow历史版本变迁以及tensorflow的架构和强大特性.并在Tensor ...

  2. TensorFlow2.0(1):基本数据结构—张量

    1 引言 TensorFlow2.0版本已经发布,虽然不是正式版,但预览版都发布了,正式版还会远吗?相比于1.X,2.0版的TensorFlow修改的不是一点半点,这些修改极大的弥补了1.X版本的反人 ...

  3. 『TensorFlow2.0正式版教程』极简安装TF2.0正式版(CPU&GPU)教程

    0 前言 TensorFlow 2.0,今天凌晨,正式放出了2.0版本. 不少网友表示,TensorFlow 2.0比PyTorch更好用,已经准备全面转向这个新升级的深度学习框架了. ​ 本篇文章就 ...

  4. 『TensorFlow2.0正式版』TF2.0+Keras速成教程·零:开篇简介与环境准备

    此篇教程参考自TensorFlow 2.0 + Keras Crash Course,在原文的基础上进行了适当的总结与改编,以适应于国内开发者的理解与使用,水平有限,如果写的不对的地方欢迎大家评论指出 ...

  5. TensorFlow2.0(9):TensorBoard可视化

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  6. TensorFlow2.0(11):tf.keras建模三部曲

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  7. tensorflow2.0安装

    版本: python3.5 Anaconda 4.2.0 tensorflow2.0 cpu版本 1.安装命令 pip3 install tensorflow==2.0.0.0a0 -i https: ...

  8. 记录二:tensorflow2.0写MNIST手写体

    最近学习神经网络,tensorflow,看了好多视频,查找了好多资料,感觉东西都没有融入自己的思维中.今天用tensorflow2.0写了一个MNIST手写体的版本,记录下学习的过程. 复现手写体识别 ...

  9. tensorflow2.0 在pycharm下提示问题

    tensorflow2.0 使用keras一般通过tensorflow.keras来使用,但是pycharm没有提示,原因是因为实际的keras路径放在tensorflow/python/keras, ...

随机推荐

  1. WMI在渗透测试中的重要性

    0x01 什么是wmi WMI可以描述为一组管理Windows系统的方法和功能.我们可以把它当作API来与Windows系统进行相互交流.WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是 ...

  2. 使用SQL-Server分区表功能提高数据库的读写性能

    首先祝大家新年快乐,身体健康,万事如意. 一般来说一个系统最先出现瓶颈的点很可能是数据库.比如我们的生产系统并发量很高在跑一段时间后,数据库中某些表的数据量会越来越大.海量的数据会严重影响数据库的读写 ...

  3. 比特币跌破3.5万美元,巨鲸们将目光瞄向SPC算力币

    比特币最近又迎来了大幅下跌,截至周三(1月20日),比特币跌幅超过5%,跌破3.5万美元.很显然,比特币没有预期那样顺顺利利地登顶4万美元,反而又出现了回调迹象.有些巨鲸们在大肆囤币,然而也有些巨鲸们 ...

  4. 智能合约稳定币USDN的价值在哪里?

    近几年来,区块链和数字货币市场快速发展,客观上需要价格相对稳定的交易媒介和贮藏手段,从而推动以链上资产或链下资产抵押型稳定币和算法型稳定币出现,以实现币价相对稳定的数字货币.市场上开始出现了诸如USD ...

  5. 2021-2-22:请你说下 CAP 理论并举例

    CAP CAP 理论是分布式系统中的一个老生常谈的理论了,最早由 Eric Brewer 在一个讲座中提出.在这个讲座中,在传统 ACID 理论以及当时比较流行但是比较抽象的的设计指导理论 BASE ...

  6. 百度webuploader_c#实现文件分片上传思路

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. JUnit5学习之三:Assertions类

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. 开源OA办公系统的“应用市场”,能够为协同办公开拓什么样的“前路”?

    在我们的日常生活中,应用市场这个词,总是与智能手机划上等号,不管使用的是iPhone还是安卓,总会接触到手机上的APP应用市场,我们可以在应用市场中,选择自己所需要的APP应用软件,下载使用后,可以让 ...

  9. 都学Python了,C++难道真的用不着了吗?

    本文首发 | 公众号:lunvey 人人都在学Python,我还学C++吗? 现在只要提及编程语言,得到的答复都是:学Python,有未来!   大家可能有一个误区,数据分析带火了Python,让人们 ...

  10. Google单元测试框架gtest之官方sample笔记2--类型参数测试

    gtest 提供了类型参数化测试方案,可以测试不同类型的数据接口,比如模板测试.可以定义参数类型列表,按照列表定义的类型,每个测试case都执行一遍. 本例中,定义了2种计算素数的类,一个是实时计算, ...