Lenet-5测试MNIST数据集出现”Allocation of 31360000 exceeds 10% of system memory“的解决方法

在用Lenet-5训练好模型后,用训练好的模型对mnist测试集中的10000条测试数据进行测试,结果电脑变得非常卡顿,并且console中出现如下警告:

虽说计算出了结果,但是运行了很长时间 ,而且期间电脑基本处于不可操作状态。

通过警告信息,可以猜测可能是一次性将10000个测试数据喂入神经网络要求分配的内存过大,所以参考反向传播代码中对训练集的处理方法,可以将一次喂入神经网络的数据量减小,从而减小内存分配,代码修改如下:

# 原来的代码如下
reshaped_x = np.reshape(mnist.test.images, (
    mnist.test.num_examples,
    lenet5_forward.IMAGE_SIZE,
    lenet5_forward.IMAGE_SIZE,
    lenet5_forward.NUM_CHENNELS
))
accuracy_score = sess.run(accuracy, feed_dict={x: reshaped_x, y_: mnist.test.labels})
# 修改后的代码如下
# 读取BATCH_SIZE组数据
xs, y_s = mnist.test.next_batch(BATCH_SIZE)
reshaped_xs = np.reshape(xs, (
    BATCH_SIZE,
    lenet5_forward.IMAGE_SIZE,
    lenet5_forward.IMAGE_SIZE,
    lenet5_forward.NUM_CHENNELS
))
accuracy_score = sess.run(accuracy, feed_dict={x: reshaped_xs, y_: y_s})

同时记得修改x的占位声明如下:

x = tf.placeholder(tf.float32, [
    BATCH_SIZE,  # 此处原来为 mnist.test.num_examples
    captcha_lenet5_forward.IMAGE_SIZE,
    captcha_lenet5_forward.IMAGE_SIZE,
    captcha_lenet5_forward.NUM_CHENNELS,
])

将BATCH_SIZE设置为1000或者其他数,程序就能较快运行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值