私はテンソルフローが初めてで、CIFAR 10データセットを訓練しようとしています。私は自分のNVIDIAコントロールパネルに応じてバッチサイズをどのように使用しても、私のGPUメモリの97%を使用していることに気付きました。私はバッチサイズを100から2にしようとしましたが、どちらの場合でも私のGPUメモリ使用量は常に97%です。それはなぜこれをするのだろうか?Tensorflowは、バッチサイズに関係なく、同じ量のgpuメモリを使用します。
def batchGenerator(batch_size = 32):
bi = 0
random.shuffle(train_data)
while bi + batch_size < len(train_data):
x = np.zeros((batch_size, 32, 32, 3))
y = np.zeros((batch_size, 10))
for b in range(batch_size):
x[b] = train_data[bi + b][0]
if random.choice((True, False)):
img = cv2.flip(x[b], 0)
if random.choice((True, False)):
img = cv2.flip(x[b], 1)
y[b][train_data[bi + b][1]] = 1
bi += batch_size
yield(x, y)
with tf.Session() as s:
s.run(tf.initialize_all_variables())
for epoch in range(100):
a = 0.0
i = 0
for x_train, y_train in batchGenerator(2):
outs = s.run([opt, accuracy], feed_dict = {x: x_train, y_exp: y_train, p_keep: 0.5})
a += outs[-1]
i += 1
print('Epoch', epoch, 'Accuracy', a/i)