【发布时间】:2019-11-05 08:38:24
【问题描述】:
看起来您的帖子主要是代码;请添加更多细节。我正在尝试训练模型,但出现此错误“无法导入 pydot。请安装 pydot。例如使用 pip install pydot。”我已经安装了 pydot 和 graphviz,
from keras.utils import print_summary
print_summary(model, line_length=None, positions=None, print_fn=None)
# add some visualization
from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot
SVG(model_to_dot(model).create(prog='dot', format='svg'))
# train the network
print("training network...")
sys.stdout.flush()
#class_mode ='categorical', # 2D one-hot encoded labels
H = model.fit_generator(aug.flow(Xtrain, trainY, batch_size=BS), \
validation_data=(Xval, valY), \
steps_per_epoch=len(trainX) // BS, \
epochs=EPOCHS, verbose=1)
# save the model to disk
print("Saving model to disk")
sys.stdout.flush()
model.save("/tmp/mymodel")
# set the matplotlib backend so figures can be saved in the background
# plot the training loss and accuracy
print("Generating plots...")
sys.stdout.flush()
matplotlib.use("Agg")
matplotlib.pyplot.style.use("ggplot")
matplotlib.pyplot.figure()
N = EPOCHS
matplotlib.pyplot.plot(np.arange(0, N), H.history["loss"], label="train_loss")
matplotlib.pyplot.plot(np.arange(0, N), H.history["val_loss"], label="val_loss")
matplotlib.pyplot.plot(np.arange(0, N), H.history["acc"], label="train_acc")
matplotlib.pyplot.plot(np.arange(0, N), H.history["val_acc"], label="val_acc")
matplotlib.pyplot.title("Training Loss and Accuracy on diabetic retinopathy detection")
matplotlib.pyplot.xlabel("Epoch #")
matplotlib.pyplot.ylabel("Loss/Accuracy")
matplotlib.pyplot.legend(loc="lower left")
matplotlib.pyplot.savefig("plot.png")
【问题讨论】:
-
请说明您是如何设置环境的。 Anaconda,Python 虚拟环境,这些都不是?您的问题开头还有一些不应该存在的文字,请删除它。
-
是的,我已经将 Anaconda 与 Spyder 编辑器一起使用,并且我创建了一个名为 tensor flow 的环境并下载了所有必需的模块
-
您是如何安装所需模块的?仅仅下载它们并不能解决问题。你如何运行你的应用程序?请尽可能详细地描述这一点(您输入的确切命令),因为它非常重要。这个错误可能有很多原因。显然你得到了一个警告,你的问题主要是代码。为什么要包含此特定代码?它根本不使用
pydot,而您的错误是关于pydot...请参阅How do I ask a good question? 和minimal reproducible example 以改进您的问题。 -
你好@wafa!我写了这个问题的答案,如果有用的话,请考虑投票和/或将其标记为您的问题的答案:)
-
确保您使用的是正确的虚拟环境。如果您确定是,请检查 PYTHONPATH 是否正确。另外 - Spyder 可能有一个单独的 PYTHONPATH 设置,与 anaconda shell 不同。