バッチサイズを設定しようとしましたが、フルバッチを使用するのに十分なメモリがないため、オートエンコーダプログラムを実行しようとしました。だから私はtf.train.batch
を使ってみました。関数の引数がテンソルなので、np配列をtf.convert_to_tensor
でテンソルに変換しようとしました。しかし、メモリは2GBを超え、テンソルに変更できませんでした。ミニバッチでどのように練習できますか? は私のコードです。pythonのテンソルでバッチを分割する
N_img=47000000
batch_size=100
X_train = np.zeros(shape=(N_img, Freq_LEN, LOOK_LEN, 1), dtype='float32')
x = tf.placeholder(tf.float32, [None, FRM_LEN/2,FRM_LEN/2,1]) #FRM_LEN=256
y = tf.placeholder(tf.float32, [None, FRM_LEN/2,FRM_LEN/2,1])
X_train=tf.convert_to_tensor(X_train)
X_train_batch= tf.train.batch(X_train,batch_size=batch_size)
print("Start training..")
for step in range(n_iters):
sess.run(optm, feed_dict={x: X_train_batch, y: X_train_batch, keepprob: 0.7})
if step % 100 == 0:
print(step,sess.run(cost, feed_dict={x: X_train_batch, y: X_train_batch, keepprob: 1}))
print("finish training")