目录

0. 简介

记录使用 tf.keras 时遇到的各种问题。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

tf.keras 是 keras 的未来,keras 作为 TensorFlow 的高级 API,大大简化 TensorFlow 代码的编写过程。

Keras(单独的)、TensorFlow 1.x 和 TensorFlow 2.0 的 keras API 变化不大,手册可以通用。

tf.keras 快速入门:初学者的 TensorFlow 2.0 教程 | TensorFlow Core

1. 安装

1.1 安装 CUDA 和 cuDNN

【tf.keras】Linux 非 root 用户安装 CUDA 和 cuDNN

2. 数据集

2.1 使用 tensorflow_datasets 导入公共数据集

【tf.keras】tensorflow datasets,tfds

2.2 数据集过大导致内存溢出

【tf.keras】在 cifar 上训练 AlexNet,数据集过大导致 OOM

2.3 加载 cifar10 数据时报错

【tf.keras】ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:1977)

3. 评价指标

3.1 实现 F1 socre、precsion、recall

在整个数据集而不是单个 batch 上实现 F1 socre、precsion、recall 等评价指标:
【tf.keras】实现 F1 score、precision、recall 等 metric

4. 优化器

4.1 AdamW 优化器示例程序

【tf.keras】AdamW: Adam with Weight decay

4.2 tf.keras 1.x 在使用 learning rate decay 时不要使用 tf.train 内的优化器

【tf.keras】tf.keras使用tensorflow中定义的optimizer

5. 模型

5.1 模型复现

【tf.keras】tf.keras模型复现
(注意:在CPU上训练才能完全复现模型)

5.2 加载 AlexNet 预训练模型

【tf.keras】tf.keras加载AlexNet预训练模型

5.3 循环训练模型导致 OOM

【tf.keras】Resource exhausted: OOM when allocating tensor with shape [9216,4096] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

6. TensorFlow API 变化

5.1 TF 1.x 到 TF 2.0 API 变化,随机种子、动态分配显存

【tf.keras】TensorFlow 1.x 到 2.0 的 API 变化

5.2 TF 2.1 API 变化

TensorFlow 2.1 将 fit_generator(), evaluate_generator(), predict_generator() 等函数分别合并到 fit(),evaluate(),predict() 里。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄