Sesuai dokumentasi TensorFlow , metode prefetch
dan kelas, keduanya memiliki parameter yang dipanggil .map
tf.contrib.data.Dataset
buffer_size
Untuk prefetch
metode, parameternya dikenal sebagai buffer_size
dan menurut dokumentasi:
buffer_size: Skalar tf.int64 tf.Tensor, mewakili jumlah elemen maksimum yang akan di-buffer ketika melakukan prefetching.
Untuk map
metode ini, parameternya dikenal sebagai output_buffer_size
dan menurut dokumentasi:
output_buffer_size: (Opsional.) Skalar tf.int64 tf.Tensor, mewakili jumlah maksimum elemen yang diproses yang akan di-buffer.
Demikian pula untuk shuffle
metode, kuantitas yang sama muncul dan menurut dokumentasi:
buffer_size: Skalar tf.int64 tf.Tensor, yang mewakili jumlah elemen dari kumpulan data ini yang akan dijadikan sampel untuk kumpulan data baru.
Apa hubungan antara parameter ini?
Misalkan saya membuat Dataset
objek sebagai berikut:
tr_data = TFRecordDataset(trainfilenames)
tr_data = tr_data.map(providefortraining, output_buffer_size=10 * trainbatchsize, num_parallel_calls\
=5)
tr_data = tr_data.shuffle(buffer_size= 100 * trainbatchsize)
tr_data = tr_data.prefetch(buffer_size = 10 * trainbatchsize)
tr_data = tr_data.batch(trainbatchsize)
Peran apa yang dimainkan oleh buffer
parameter dalam cuplikan di atas?