首页 > 解决方案 > ImportError:无法导入名称“MasterServer”

问题描述

我正在尝试使 mnist 示例正常工作,但出现下一个错误

我试图 pip install tensorflow-gpu==2.3.0 但这并没有解决问题

import matplotlib.pyplot as plt

mnist = tf.keras.datasets.mnist # 28*28

(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = tf.keras.utils.normalize(x_train, axis=1)
x_test = tf.keras.utils.normalize(x_test, axis=1)

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=3)

我得到的错误

Traceback (most recent call last):
  File "C:/TI-software/AAI/Herkansing/Testmnist.py", line 1, in <module>
    import tensorflow as tf
  File "C:\Users\Bryan\AppData\Roaming\Python\Python38\site-packages\tensorflow\__init__.py", line 41, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "C:\Users\Bryan\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\__init__.py", line 45, in <module>
    from tensorflow.python import data
  File "C:\Users\Bryan\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\data\__init__.py", line 25, in <module>
    from tensorflow.python.data import experimental
  File "C:\Users\Bryan\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\data\experimental\__init__.py", line 96, in <module>
    from tensorflow.python.data.experimental import service
  File "C:\Users\Bryan\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\data\experimental\service\__init__.py", line 22, in <module>
    from tensorflow.python.data.experimental.service.server_lib import MasterServer
ImportError: cannot import name 'MasterServer' from 'tensorflow.python.data.experimental.service.server_lib'```

标签: pythontensorflow

解决方案


您可以卸载旧版本并安装最新版本,它将解决您的大部分问题。我能够在TF 2.3.0和中执行代码TF 2.4.1

import tensorflow as tf
print(tf.__version__)

mnist = tf.keras.datasets.mnist # 28*28

(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = tf.keras.utils.normalize(x_train, axis=1)
x_test = tf.keras.utils.normalize(x_test, axis=1)

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=3)

输出:

2.3.0
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 0s 0us/step
Epoch 1/3
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2597 - accuracy: 0.9251
Epoch 2/3
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1083 - accuracy: 0.9669
Epoch 3/3
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0733 - accuracy: 0.9769
<tensorflow.python.keras.callbacks.History at 0x7f3a6cfe46a0

推荐阅读