【问题标题】:Model fit never finishes first epoch when using ImageDataGenerator使用 ImageDataGenerator 时,模型拟合永远不会完成第一个 epoch
【发布时间】:2021-08-28 02:55:42
【问题描述】:

我正在尝试在 docker 中重新创建这个 jupyter notebook(配置如下):https://www.kaggle.com/ginsaputra/visual-inspection-of-casting-products-using-cnn(在 300x300 图像上训练 CNN 分类器)并且遇到了奇怪的问题。

使用与笔记本中相同的方法和数据,我使用tf.keras.preprocessing.image.ImageDataGenerator.flow_from_directory 创建了一个批处理大小为 32 的数据集。此输出(正确):Found 5307 images belonging to 2 classes,所以这工作正常。

首先,当我以 10 个 epoch 运行 model.fit 时,与在训练期间输出 i/166 - 的笔记本不同,我的输出 i/Unknown。我在其他地方读到这是“正确的”,因为数据集是从磁盘流式传输的,并且在第一个 epoch 完成之前它还不知道数据集的完整大小。很公平,但很奇怪a)它在链接的笔记本中工作,b)在创建数据集时它输出Found 5307 images...,所以它似乎知道它的大小,但没关系。我可以忍受的一个小烦恼。

但是,鉴于数据集的批量大小和大小,一个 epoch 应该在 166 步后完成。这不是正在发生的事情。在 166 步之后,这个纪元并没有结束,它似乎永远在继续。步数不断增加到五位数范围内,远远超过数据集所提供的,损失不断下降,准确度不断上升......?

所以我想,我只是传递了一个明确的steps_per_epoch-值 166。现在事情变得更奇怪了:步数上升到 166,然后……什么都没有。输出刚刚停止。查看top,CPU 或 RAM 使用率没有明显变化(分别约为 700% 和 4%,这是有道理的,因为我没有使用 CUDA)。就好像模型只是继续训练,它只是不向 shell 输出任何东西。

有人知道这里发生了什么吗?

Docker 配置:

# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.177.0/containers/ubuntu/.devcontainer/base.Dockerfile

# [Choice] Ubuntu version: bionic, focal
ARG VARIANT="focal"
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}

 RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
     && apt-get -y install --no-install-recommends \
        python3.9 \
        python3-pip

RUN pip3 install \
    graphviz==0.16 \
    ipywidgets==7.5.1 \
    keras==2.4.3 \
    lime==0.2.0.1 \
    matplotlib==3.3.4 \
    numpy==1.19.2 \
    opencv-python-headless==4.5.1.48 \
    pyswip==0.2.10 \
    scikit-image==0.18.1 \
    tensorflow==2.5.0 \
    webcolors==1.11.1

【问题讨论】:

    标签: tensorflow tensorflow-datasets tf.keras


    【解决方案1】:

    呃,事实证明,这是由错误的 import 语句引起的,该语句导致了 kerastensorflow.keras 之间的混淆。将import keras... 替换为import tensorflow.keras... 即可解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多