目录
一、RuntimeError: DataLoader worker (pid(s) ...) exited unexpectedly
二、Figure size 350x250 with 1 Axes,不能可视化训练进度
一、RuntimeError: DataLoader worker (pid(s) ...) exited unexpectedly
1、ctrl+左键点击第8行的train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)的load_data_fashion_mnist函数
2、进入函数后找到194行的get_dataloader_workers()函数,将return 4改为return 0
报错原因:linux系统中可以使用多个子进程加载数据,而在windows系统中不能。所以在windows中要将DataLoader中的num_workers应该设置为0
二、Figure size 350x250 with 1 Axes,不能可视化训练进度
1、代码导入plt模块
import matplotlib.pyplot as plt
2、将Animator类中的add函数用下面修改后的替换
def add(self, x, y):
# Add multiple data points into the figure
if not hasattr(y, "__len__"):
y = [y]
n = len(y)
if not hasattr(x, "__len__"):
x = [x] * n
if not self.X:
self.X = [[] for _ in range(n)]
if not self.Y:
self.Y = [[] for _ in range(n)]
for i, (a, b) in enumerate(zip(x, y)):
if a is not None and b is not None:
self.X[i].append(a)
self.Y[i].append(b)
self.axes[0].cla()
for x, y, fmt in zip(self.X, self.Y, self.fmts):
self.axes[0].plot(x, y, fmt)
self.config_axes()
display.display(self.fig)
# 通过以下两行代码实现了在PyCharm中显示动图
plt.draw()
plt.pause(interval=0.001)
display.clear_output(wait=True)
3、在模型训练train_ch3(net, train_iter, test_iter, cross_entropy, num_epochs, updater)后一行添加
d2l.plt.show()
备注:后续章节如需用到相应函数,则需要按上述方法修改d2l包中的Animator类中的add函数