TensorFlow: Memahami argumen `collections` di tf.summary.scalar

Saya bekerja dengan TensorBoard, khususnya tf.summary.scalar. Di dokumentasi memiliki argumen collections=None, yang digambarkan sebagai:

collections: Daftar opsional kunci kumpulan grafik. Operasi ringkasan baru ditambahkan ke koleksi ini. Defaultnya adalah [GraphKeys.SUMMARIES].

Saya tidak mengerti uraian ini, dan untuk apa collections digunakan. Bisakah seseorang menjelaskan hal ini kepada saya, dan mungkin mengarahkan saya ke contoh kasus penggunaan yang baik?


person Toke Faurby    schedule 30.01.2017    source sumber


Jawaban (1)


Ini adalah permata tersembunyi! Anda dapat memberikannya daftar string pilihan Anda yang memberi label pada simpul ringkasan, mis.

tf.summary.scalar('learning_rate', p_lr, collections=['train'])
tf.summary.scalar('loss', t_loss, collections=['train', 'test'])

lalu ambil ringkasan berdasarkan labelnya, mis. seperti ini:

s_training = tf.summary.merge_all('train')
s_test = tf.summary.merge_all('test')

Saya melakukannya seperti itu karena saya sering ingin mencatat informasi tambahan selama tahap validasi; dalam contoh di atas, saya tidak perlu memberikan nilai untuk placeholder kecepatan pemelajaran p_lr saat mengevaluasi (dan menulis) akurasi, misalnya - atau apa pun yang benar-benar diandalkan oleh bagian inferensi grafik.

Menyediakan (hanya) kategori khusus juga memiliki efek samping yang bagus yaitu menyembunyikan node dari Supervisor, misalnya. Jika Anda benar-benar ingin memiliki kendali atas kapan tepatnya Anda menulis ringkasan (misalnya menggunakan sv.summary_computed() untuk Supervisor), itu cara yang mudah.

person sunside    schedule 30.01.2017
comment
Deskripsi yang bagus! collections dapat digunakan secara lebih umum kapan pun Anda ingin mengakses semua sesuatu yang tersebar di seluruh mis. jika Anda ingin semua bias dalam grafik, ini bisa digunakan. Dibahas di sini. Lihat get_collection dokumentasi di sini. - person Toke Faurby; 01.02.2017