首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

tensorflow2.0进阶操作:你也可以月薪40K?

安装

宿主机驱动

CUDA Toolkit 和 cuDNN 的安装

限定程序使用GPU

tnsorflow2

基础知识

python技巧

TensorFlow 模型建立与训练

示例代码

步骤

源代码

基础知识

示例代码

keras 预定义了卷积神经网络结构

实例代码

示例代码

动态规划 (Dynamic Programming DP)

自定义层

自定义损失函数和评估指标

示例

管理checkpoint

TensorBoard:训练过程可视化

数据集的构建和预处理

模型导出

分布式计算

单机 MirroredStrategy

多机  MultiWorkerMirroredStrategy

test GPU

基础操作

安装

从 TensorFlow 2.1 开始,pip 包 tensorflow 即同时包含 GPU 支持,无需通过特定的 pip 包 tensorflow-gpu 安装 GPU 版本。如果对 pip 包的大小敏感,可使用 tensorflow-cpu 包安装仅支持 CPU 的 TensorFlow 版本。

conda虚拟环境

宿主机驱动

测试:nvidia-smi

CUDA Toolkit 和 cuDNN 的安装

限定程序使用GPU

方法1

方法2

方法3

tnsorflow2

基础知识

前置知识

python 对象的属性

dir(对象)

vars(对象)

help(对象)

python技巧

Python 中可以使用整数后加小数点表示将该整数定义为浮点数类型。例如 3. 代表浮点数 3.0

zip()在python3中是一个生成器,

TensorFlow 模型建立与训练

keras 中两个比较重要的概念是是模型(Model)和层(Layer)。曾将各种计算流程和变量进行了封装,而模型则将各个层进行了组织和链接,并且封装成了一个整体,描述了如何将输入数据通过各个层以及运算而得到输出。需要调用模型的时候就需要:y=model(X)的形式就可以。keras中layers中预定义层,同时也允许我们自定义层。

示例代码

tensorflow2线性模型

步骤

源代码

CNN

基础知识

卷积神经网络(Convolutional Neural Network, CNN)是一种结构类似于人类或动物的 视觉系统 的人工神经网络,包含一个或多个卷积层(Convolutional Layer)、池化层(Pooling Layer)和全连接层(Fully-connected Layer)。

示例代码

keras 预定义了卷积神经网络结构

tf.keras.applications中有很多经典的卷积神经网络结构。VGG16、VGG19、ResNet、MobileNet等

默认的参数包括:input_shape 默认大小是2242243,3232 或7575有长款至少限制;include_top:在网络最后是否包含全连接层,默认是true;weights:预训练权值,默认是’imagenet‘即为当前模型载入在ImageNet数据集上预训练的权值。classes:分类数,默认1000,修改该参数需要include_top参数为True且weights参数为None。

model = tf.keras.applications.MobileNetV2()

实例代码

循环神经网络(RNN)

循环神经网络(Recurrent Neural Network, RNN)是一种适宜于处理序列数据的神经网络,被广泛用于语言模型、文本生成、机器翻译等。

示例代码

DRL 深度强化学习

强化学习 (Reinforcement learning,RL)强调如何基于环境而行动,以取得最大化的预期利益。结合了深度学习技术后的强化学习(Deep Reinforcement learning,DRL)更是如虎添翼。近年广为人知的 AlphaGo 即是深度强化学习的典型应用。

DRL中有两个新的概念:”智能体“和”环境“。智能体通过与环境的交互学习策略,从而最大化自己在环境中所获得的的奖励。

监督学习关注的是预测,那么强化学习关注的是决策。

动态规划 (Dynamic Programming DP)

基本思路:将一个问题分解为若干个结构相同的子问题。并保存已经解决的子问题的人答案。

最优子结构:一个最优策略的子策略也最优的。

无后效性:过去的步骤只能通过当前的状态影响未来的发展,当前是历史的总结。

数字三角形

从直接算法到迭代算法

示例:倒立摆

Keras Sequential/Functional API 模式建立模型

Keras 提供了 Functional API,帮助我们建立更为复杂的模型,例如多输入 / 输出或存在参数共享的模型。

使用keras Model的compile/fit 和evaluate方法训练和评估模型。

model.fit(data_loader.train_data, data_loader.train_label, epochs=num_epochs, batch_size=batch_size)

x :训练数据;

y :目标数据(数据标签);

epochs :将训练数据迭代多少遍;

batch_size :批次的大小;

validation_data :验证数据,可用于在训练过程中监控模型的性能。

print(model.evaluate(data_loader.test_data, data_loader.test_label))

自定义层、损失函数和评估指标

自定义层

重写全连接层

LinearLayer

自定义损失函数和评估指标

Tensorflow常用模块

模型保存和加载:save() 和 restore()

加载模型

总结

示例

管理checkpoint

管理Checkpiont

TensorBoard:训练过程可视化

实时查看参数变化情况

查看 Graph 和 Profile 信息

示例

数据集的构建和预处理

tf.data.Dataset类,提供了对数据集的高层封装。tf.data.Dataset由可迭代的访问元素组成。每个元素包含一个或多个张量。

使用于小数据集的方法:tf.data.Dataset.from_tensor_slices() ,构成一个大的张量。

数据集的预处理办法

Dataset.map(f):对数据集的每个元素应用函数f,得到一个新的数据集

Dataset.shuffle(buffer_size) :将数据集打乱

Dataset.batch(batch_size) :将数据集分成批次,即对每 batch_size 个元素,使用 tf.stack() 在第 0 维合并,成为一个元素;

TFRecord :TensorFlow 数据集存储格式

TFRecord 可以理解为一系列序列化的 tf.train.Example 元素所组成的列表文件,而每一个 tf.train.Example 又由若干个 tf.train.Feature 的字典组成。

写TFRecord文件

读TFRecord文件

部署

模型导出

SaveModel:与前面介绍的 Checkpoint 不同,SavedModel 包含了一个 TensorFlow 程序的完整信息:不仅包含参数的权值,还包含计算的流程(即计算图) 。当模型导出为 SavedModel 文件时,无需建立模型的源代码即可再次运行模型,这使得 SavedModel 尤其适用于模型的分享和部署。后文的 TensorFlow Serving(服务器端部署模型)、TensorFlow Lite(移动端部署模型)以及 TensorFlow.js 都会用到这一格式。

分布式计算

单机 MirroredStrategy

tf.distribute.MirroredStrategy 是一种简单且高性能的,数据并行的同步式分布式策略,主要支持多个 GPU 在同一台主机上训练。

strategy = tf.distribute.MirroredStrategy(devices=["/gpu:0", "/gpu:1"])

多机  MultiWorkerMirroredStrategy

部署Docker 环境

Docker 是轻量级的容器环境,将程序放在虚拟的 “容器” 或者说 “保护层” 中运行,既避免了配置各种库、依赖和环境变量的麻烦,又克服了虚拟机资源占用多、启动慢的缺点。

拉取Tensorflow映像

GPU

test GPU

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201012A01BF700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券