keras中导入utls失败的解决办法

环境:anoconda(Python3.7)

在使用tensorflow.keras训练神经网络时,需要使用to_categorical()函数,于是运行下面的代码:

1
from tensorflow.keras.utils import np_utils

会报错,错误信息如下:

1
2
3
4
ImportError                               Traceback (most recent call last)
<ipython-input-20-ce1e713f73e2> in <module>
----> 1 from tensorflow.keras.utils import np_utils
ImportError: cannot import name 'np_utils' from 'tensorflow.keras.utils' (/home/fanxi/anaconda3/lib/python3.7/site-packages/tensorflow/_api/v1/keras/utils/__init__.py)

为了解决这个问题,先根据报错信息显示的路径找到文件init.py,打开,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Copyright 2016 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""Keras utilities."""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

from tensorflow.python.keras.utils.data_utils import GeneratorEnqueuer
from tensorflow.python.keras.utils.data_utils import get_file
from tensorflow.python.keras.utils.data_utils import Sequence
from tensorflow.python.keras.utils.data_utils import SequenceEnqueuer
from tensorflow.python.keras.utils.generic_utils import custom_object_scope
from tensorflow.python.keras.utils.generic_utils import CustomObjectScope
from tensorflow.python.keras.utils.generic_utils import deserialize_keras_object
from tensorflow.python.keras.utils.generic_utils import get_custom_objects
from tensorflow.python.keras.utils.generic_utils import Progbar
from tensorflow.python.keras.utils.generic_utils import serialize_keras_object
from tensorflow.python.keras.utils.io_utils import HDF5Matrix
from tensorflow.python.keras.utils.layer_utils import convert_all_kernels_in_model
from tensorflow.python.keras.utils.np_utils import normalize
from tensorflow.python.keras.utils.np_utils import to_categorical
from tensorflow.python.keras.utils.vis_utils import plot_model

del absolute_import
del division
del print_function

把之前运行的代码改为:

1
from tensorflow.python.keras.utils.np_utils import to_categorical

便可以直接导入to_categorical函数了

凡希 wechat
喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号
呐,请我吃辣条