InternalError: Dst tensor is not initialized. 的一种解决方法

出现这种错误的一种情形如下图所示:InternalError

出问题的语句就一句:

acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})

InternalError: Dst tensor is not initialized. 的一种解决方法_第1张图片

还有一种情形是ResourceExhaustError ,如下图所示

图没有保存

还有一种情形是不报错,可以正常执行!如下图所示:

InternalError: Dst tensor is not initialized. 的一种解决方法_第2张图片

不报错的情况是怎么出现的呢?我把jupyter-notebook关闭,再重新打开,再运行这个例子,竟然没有报错。但是当我运行了其他的例子,再运行这个例子时,就会容易报错了。

# 解决办法:

既然训练的时候时分批训练的,那么我的想法就是分批测试。测试集总共有10000张图片,一次性测试容易报错,那就分批测试

        ## 预测准确率
        #batch_size_test = 8500 最大一次性可以测试这么多张图片,再多就会很容易出现报错了
        #acc = sess.run(accuracy, feed_dict={x:mnist.test.images[0:batch_size_test], y:mnist.test.labels[0:batch_size_test]})
        # 由于GPU资源有限,不能够一次性验证10000张图片。因而采取分批次验证的方案
        batch_size_test = 5000   # 每批次的验证图片数量
        num = len(mnist.test.images)//batch_size_test
        acc_sum = 0
        #print(num)
        #print(batch_size_test)
        #print(acc_sum)
        
        for i in range(num):
            acc = sess.run(accuracy, feed_dict={x:mnist.test.images[i*batch_size_test : (i+1)*batch_size_test+i-1], y:mnist.test.labels[i*batch_size_test : (i+1)*batch_size_test+i-1]})
            acc_sum = acc_sum + acc
            print("Every test loop, i: "+str(i))
        acc = acc_sum/num #取各批次的平均值
        
        
        ## 输出迭代次数及准确率
        
        print("Iter " + str(epoch) + ", Testing Accuracy " + str(acc))
        
        #print(len(mnist.test.images))

 

 

 

你可能感兴趣的:(tensorflow-gpu,Tensorflow-gpu,CUDA,9.0,MNIST,InternalError,Dst,tensor)