私はこのCNN built for MNISTをCIFAR10に適合させようとしています。私はCIFAR画像(32x32)のサイズに合わせて構造を変更しました。私のGPU上の鉄道模型が、私は、テストデータのための評価関数(test_eval
)を実行するたびに、私は最初のコンボリューション(hconv1
)のためのメモリエラーの出る -TFモデルの重みをCPUに格納しますか?
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[10000,32,32,32]
[[Node: Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/gpu:0"](Reshape, W_conv1/read/_79)]]
を今私は上の同じコードを実行してみました私のCPU(export CUDA_VISIBLE_DEVICES=""
を使用)とtest_eval
関数は正常に実行されます。だから私は明らかに自分の体重変数だけを自分のCPUに明示的に保存すればそれが機能するかもしれないと考えました。だから私はからweight_variable
機能を修正 -
def weight_variable(self, shape):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial)
def weight_variable(self, shape):
with tf.device('/cpu:0'):
initial = tf.Variable(tf.truncated_normal(shape, stddev=0.1))
return initial
まだ私は
test_eval
機能を実行すると、私はまだOOMエラーを取得しています。上記のコードは実際に変数をCPUに格納していますか?これをどうすれば解決できますか?
私のGPUはGeForce GTX 950M、2GBです。また、私が上に投稿したMNIST CNNのコードは、this