keras mnist.load_data()太慢,过一段时间后会引发错误

时间:2018-06-29 21:37:00

标签: python keras mnist

这是我使用的整个代码

import os
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdm


from keras.layers import Input
from keras.models import Model, Sequential
from keras.layers.core import Dense, Dropout
from keras.layers.advanced_activations import LeakyReLU
from keras.datasets import mnist
from keras.optimizers import Adam
from keras import initializers

os.environ["KERAS_BACKEND"] = "tensorflow"

np.random.seed(10)

random_dim = 100

def load_mnist_data():
    # load the data
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    # normalize our inputs to be in the range[-1, 1]
    x_train = (x_train.astype(np.float32) - 127.5)/127.5
    print(x_train.shape)
    # convert x_train with a shape of (60000, 28, 28) to (60000, 784) so we have
    # 784 columns per row
    x_train = x_train.reshape(60000, 784)
    return (x_train, y_train, x_test, y_test)


load_mnist_data()

大约需要30分钟才能完成一半的下载,并且经过一段时间(大约5000000/11490434和6000000/11490434),它崩溃并引发此错误:

  

ConnectionResetError:[WinError 10054]与遥远的距离存在

(翻译)

  

现有的连接已被遥远的主机关闭

是什么原因造成的?用keras下载mnist数据要花一个小时是正常的吗?当我从tensorflow下载mnist数据只花几分钟的时间吗?

1 个答案:

答案 0 :(得分:1)

我在评论中写了解决问题的方法,但我想更清楚一点。

仅当程序从空闲状态启动时才出现问题,并且这是您首次从keras导入mnist数据。

简单的解决方案是从命令提示符中简单地放行程序,似乎闲置无法处理打印那么多东西,而在闲置上打印东西实际上会在短时间内停止程序,这可能解释了荒谬的数量时间来下载它。

TLDR:从命令提示符启动程序