0. 简介

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

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

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

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() 里。

【tf.keras】使用手册的更多相关文章

  1. 基于tensorflow2.0 使用tf.keras实现Fashion MNIST

    本次使用的是2.0测试版,正式版估计会很快就上线了 tf2好像更新了蛮多东西 虽然教程不多 还是找了个试试 的确简单不少,但是还是比较喜欢现在这种写法 老样子先导入库 import tensorflo ...

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

    目录 从 PyTorch 中导出模型参数 第 0 步:配置环境 第 1 步:安装 MMdnn 第 2 步:得到 PyTorch 保存完整结构和参数的模型(pth 文件) 第 3 步:导出 PyTorc ...

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

    cifar-10 每张图片的大小为 32×32,而 AlexNet 要求图片的输入是 224×224(也有说 227×227 的,这是 224×224 的图片进行大小为 2 的 zero paddin ...

  4. 【tf.keras】实现 F1 score、precision、recall 等 metric

    tf.keras.metric 里面竟然没有实现 F1 score.recall.precision 等指标,一开始觉得真不可思议.但这是有原因的,这些指标在 batch-wise 上计算都没有意义, ...

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

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

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

    TensorFlow 2.0 版本将 keras 作为高级 API,对于 keras boy/girl 来说,这就很友好了.tf.keras 从 1.x 版本迁移到 2.0 版本,需要修改几个地方. ...

  7. 【tf.keras】tensorflow datasets,tfds

    一些最常用的数据集如 MNIST.Fashion MNIST.cifar10/100 在 tf.keras.datasets 中就能找到,但对于其它也常用的数据集如 SVHN.Caltech101,t ...

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

    问题描述 tf.keras 在加载 cifar10 数据时报错,ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption ...

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

    Update:2019/09/21 使用 tf.keras 时,请使用 tf.keras.optimizers 里面的优化器,不要使用 tf.train 里面的优化器,不然学习率衰减会出现问题. 使用 ...

随机推荐

  1. python-字符编码数据类型转换

    1 - 编码格式转换 1.1 编码格式介绍 字符集 介绍 ASCII ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符 ANSI ANSI是一种字符代码,为使计算 ...

  2. linux用户权限管理, chmod, ln

    1 /etc/passwd文件 用户名  密码    UID        GID           Full Name                      主目录               ...

  3. C# 判断两条直线距离

    本文告诉大家获得两条一般式直线距离 一般式的意思就是 Ax+By+C=0" role="presentation">Ax+By+C=0Ax+By+C=0 如果有两个 ...

  4. linux mysql 查看默认端口号和修改端口号

    如何查看mysql 默认端口号和修改端口号 2015-03-19 17:42:18 1. 登录mysql [root@test /]# mysql -u root -p Enter password: ...

  5. 2018-8-10-VisualStudio-合并代码文件

    title author date CreateTime categories VisualStudio 合并代码文件 lindexi 2018-08-10 19:16:52 +0800 2018-2 ...

  6. 代码片段 修改Windows用户名

    cmd /c wmic useraccount where name=' 记录防备忘

  7. java 自动关闭资源的try语句

    Java 7简化资源清理(try-with-resources)自动关闭资源的try语句 自动关闭资源格式: try( )//此处多了圆括号,()圆括号内写打开资源的代码,在这里创建的对象必须实现Au ...

  8. linux 选择 ioctl 命令

    在为 ioctl 编写代码之前, 你需要选择对应命令的数字. 许多程序员的第一个本能的反 应是选择一组小数从0或1 开始, 并且从此开始向上. 但是, 有充分的理由不这样做. ioctl 命令数字应当 ...

  9. H3C ping命令的输出

  10. Linux 内核设备驱动

    设备模型跟踪所有对系统已知的驱动. 这个跟踪的主要原因是使驱动核心能匹配驱动和新 设备. 一旦驱动在系统中是已知的对象, 但是, 许多其他的事情变得有可能. 设备驱动可 输出和任何特定设备无关的信息和 ...