Theo TensorFlow tài liệu hướng dẫn , các prefetch
và map
phương pháp của tf.contrib.data.Dataset
lớp, cả hai đều có một tham số gọi buffer_size
.
Đối với prefetch
phương thức, tham số được gọi là buffer_size
và theo tài liệu:
buffer_size: Một tf.Tensor vô hướng tf.int64, đại diện cho số phần tử tối đa sẽ được lưu vào bộ đệm khi tìm nạp trước.
Đối với map
phương thức, tham số được gọi là output_buffer_size
và theo tài liệu:
output_buffer_size: (Tùy chọn.) Một tf.Tensor vô hướng tf.int64, đại diện cho số lượng phần tử được xử lý tối đa sẽ được lưu vào bộ đệm.
Tương tự đối với shuffle
phương pháp, cùng một số lượng xuất hiện và theo tài liệu:
buffer_size: Một tf.Tensor vô hướng tf.int64, đại diện cho số phần tử từ tập dữ liệu này mà từ đó tập dữ liệu mới sẽ lấy mẫu.
Mối quan hệ giữa các tham số này là gì?
Giả sử tôi tạo một Dataset
đối tượng như sau:
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)
Các buffer
thông số trong đoạn mã trên đang đóng vai trò gì ?