我正在尝试在Google Colab上训练自定义对象检测模型。我正在使用Tensorflow gpu 2.2.0。
但是当我尝试在第4单元中导入库时(您可以在下面看到),我得到了error:AttributeError:模块'tensorflow.python.keras.utils.generic_utils'没有属性'populate_dict_with_module_objects'。
我尝试与Tensorflow gpu 2.1.0相同,但效果不佳。当我尝试在没有import tensorflow as tf
的情况下运行第四个单元格时,它会正常运行。这背后的原因是什么?无论如何,我都需要解决这个问题。
(1) !pip install -U --pre tensorflow_gpu=="2.2.0"
(2) import os
import pathlib
#To Clone the tensorflow models repository if it doesn't already exist
if "models" in pathlib.Path.cwd().parts:
while "models" in pathlib.Path.cwd().parts:
os.chdir('..')
elif not pathlib.Path('models').exists():
!git clone --depth 1 https://github.com/tensorflow/models
(3) # To Install the Object Detection API
%%bash
cd models/research/
protoc object_detection/protos/*.proto --python_out=.
cp object_detection/packages/tf2/setup.py .
python -m pip install .
(4) import matplotlib
import matplotlib.pyplot as plt
import os
import random
import io
import imageio
import glob
import scipy.misc
import numpy as np
from six import BytesIO
from PIL import Image, ImageDraw, ImageFont
from IPython.display import display, Javascript
from IPython.display import Image as IPyImage
import tensorflow as tf
from object_detection.utils import label_map_util
from object_detection.utils import config_util
from object_detection.utils import visualization_utils as viz_utils
from object_detection.utils import colab_utils
from object_detection.builders import model_builder
%matplotlib inline
以下是错误的图片:
答案 0 :(得分:0)
这似乎是您的导入语句中的错字:
from tensorflow.python.keras.utils.generic_utils import populate_dict_with_module_objects
在Google colab中为我工作,
from tensorflow.python.keras.util.generic_utils import populate_dict_with_module_objects
没有。
也许可以在object_detection.utils模块中更改该行。
答案 1 :(得分:0)
%tensorflow_version 2.x
!pip 卸载 keras-nightly
!pip uninstall -y tensorflow
!pip install tensorflow-gpu==1.15.0
!pip install keras==2.1.6
!pip uninstall -y h5py
!pip install h5py==2.10.0
试试这个组合。我遇到了和你一样的问题。该代码现在适用于 gpu。