TensorWatch adalah alat debugging dan visualisasi yang dirancang untuk ilmu data, pembelajaran dalam dan pembelajaran penguatan dari penelitian Microsoft. Ini bekerja di Jupyter Notebook untuk menampilkan visualisasi real-time dari pelatihan pembelajaran mesin Anda dan melakukan beberapa tugas analisis utama lainnya untuk model dan data Anda.
TensorWatch dirancang agar fleksibel dan dapat diperluas sehingga Anda juga dapat membangun visualisasi, UI, dan dasbor khusus Anda sendiri. Besides traditional "what-you-see-is-what-you-log" approach, it also has a unique capability to execute arbitrary queries against your live ML training process, return a stream as a result of the query and view this stream using Pilihan visualisator Anda (kami menyebut mode logging malas ini).
TensorWatch berada di bawah pengembangan besar dengan tujuan menyediakan platform untuk men -debug pembelajaran mesin dalam satu paket yang mudah digunakan, dapat diperluas, dan dapat diretas.

pip install tensorwatch
TensorWatch mendukung Python 3.x dan diuji dengan pytorch 0.4-1.x. Sebagian besar fitur juga harus bekerja dengan tensorflow yang bersemangat. TensorWatch menggunakan GraphViz untuk membuat diagram jaringan dan tergantung pada platform Anda kapan -kapan Anda mungkin perlu menginstalnya secara manual.
Berikut kode sederhana yang mencatat bilangan bulat dan kuadratnya sebagai tuple setiap detik untuk TensorWatch:
import tensorwatch as tw
import time
# streams will be stored in test.log file
w = tw.Watcher(filename='test.log')
# create a stream for logging
s = w.create_stream(name='metric1')
# generate Jupyter Notebook to view real-time streams
w.make_notebook()
for i in range(1000):
# write x,y pair we want to log
s.write((i, i*i))
time.sleep(1)
Saat Anda menjalankan kode ini, Anda akan melihat test.ipynb file notebook Jupyter.ipynb dibuat di folder skrip Anda. Dari Command Prompt Type jupyter notebook dan pilih test.ipynb . Pilih Cell> Jalankan semua di menu untuk melihat grafik garis real-time saat nilai ditulis dalam skrip Anda.
Inilah output yang akan Anda lihat di Jupyter Notebook:

Untuk menyelam lebih dalam ke berbagai fitur lainnya, silakan lihat tutorial dan notebook.
Saat Anda menulis ke aliran TensorWatch, nilai -nilai mendapatkan serial dan dikirim ke soket TCP/IP serta file yang Anda tentukan. Dari Jupyter Notebook, kami memuat nilai -nilai yang sebelumnya dicatat dari file dan kemudian mendengarkan soket TCP/IP untuk nilai apa pun di masa mendatang. Visualisasi mendengarkan aliran dan membuat nilai -nilai saat mereka tiba.
Oke, jadi itu deskripsi yang sangat disederhanakan. Arsitektur TensorWatch sebenarnya jauh lebih kuat. Hampir semua yang ada di TensorWatch adalah aliran . File, soket, konsol, dan bahkan visualisasi adalah stream sendiri. Suatu hal yang keren tentang aliran TensorWatch adalah mereka dapat mendengarkan aliran lainnya. Ini memungkinkan TensorWatch untuk membuat grafik aliran data . Ini berarti bahwa visualisasi dapat mendengarkan banyak aliran secara bersamaan, yang masing -masing dapat berupa file, soket atau aliran lainnya. Anda dapat memperpanjang ini secara rekursif ini untuk membangun grafik aliran data yang sewenang -wenang. TensorWatch Decouples aliran dari bagaimana mereka disimpan dan bagaimana mereka divisualisasikan.
Dalam contoh di atas, grafik garis digunakan sebagai visualisasi default. Namun, TensorWatch mendukung banyak jenis diagram lainnya termasuk histogram, diagram lingkaran, grafik sebaran, grafik batang dan versi 3D dari banyak plot ini. Anda dapat mencatat data Anda, menentukan jenis grafik yang Anda inginkan dan membiarkan TensorWatch mengurus sisanya.
Salah satu kekuatan signifikan TensorWatch adalah kemampuan untuk menggabungkan, menyusun, dan membuat visualisasi khusus dengan mudah. Misalnya, Anda dapat memilih untuk memvisualisasikan sejumlah aliran yang sewenang -wenang dalam plot yang sama. Atau Anda dapat memvisualisasikan aliran yang sama di banyak plot yang berbeda secara bersamaan . Atau Anda dapat menempatkan set visualisasi yang sewenang-wenang berdampingan. Anda bahkan dapat membuat widget visualisasi khusus Anda sendiri hanya dengan membuat kelas Python baru, menerapkan beberapa metode.
Setiap aliran TensorWatch dapat berisi metrik pilihan Anda. Secara default, TensorWatch menyimpan semua aliran dalam satu file, tetapi Anda juga dapat memilih untuk menyimpan setiap aliran dalam file terpisah atau tidak untuk menyimpannya sama sekali (misalnya, mengirim aliran ke soket atau ke konsol secara langsung, nol hit ke disk! ). Nanti Anda dapat membuka aliran ini dan mengarahkannya ke satu atau lebih visualisasi. Desain ini memungkinkan Anda untuk dengan cepat membandingkan hasil dari berbagai percobaan Anda dalam pilihan visualisasi Anda dengan mudah.
Seringkali Anda mungkin lebih suka melakukan analisis data, pelatihan ML, dan pengujian - semua dari dalam buku catatan Jupyter daripada dari skrip terpisah. TensorWatch dapat membantu Anda melakukan visualisasi real-time yang canggih dengan mudah dari kode yang dijalankan dalam notebook Jupyter ujung ke ujung.
Fitur unik di TensorWatch adalah kemampuan untuk meminta proses menjalankan langsung, mengambil hasil kueri ini sebagai aliran dan mengarahkan aliran ini ke visualisasi pilihan Anda. Anda tidak perlu mencatat data apa pun sebelumnya. Kami menyebut cara baru ini untuk men -debug dan visualisasi mode penebangan malas .
Misalnya, seperti yang terlihat di bawah ini, kami memvisualisasikan pasangan gambar input dan output, sampel secara acak selama pelatihan autoencoder pada dataset buah -buahan. Gambar -gambar ini tidak dicatat sebelumnya dalam skrip. Sebagai gantinya, pengguna mengirimkan kueri sebagai ekspresi Python Lambda yang menghasilkan aliran gambar yang ditampilkan dalam buku catatan Jupyter:

Lihat tutorial Lazy Logging.
TensorWatch memanfaatkan beberapa perpustakaan yang sangat baik termasuk HiddenLayer, Torchstat, atribusi visual untuk memungkinkan melakukan kegiatan debugging dan analisis yang biasa dalam satu paket dan antarmuka yang konsisten.
Misalnya, Anda dapat melihat grafik model dengan bentuk tensor dengan one-liner:

Anda dapat melihat statistik untuk berbagai lapisan seperti kegagalan, jumlah parameter, dll:

Lihat Notebook.
Anda dapat melihat dataset dalam ruang dimensi yang lebih rendah menggunakan teknik seperti T-SNE:

Lihat Notebook.
Kami ingin menyediakan berbagai alat untuk menjelaskan prediksi untuk membantu debugging model. Saat ini, kami menawarkan beberapa penjelasan untuk jaringan konvolusional, termasuk kapur. Misalnya, yang berikut ini menyoroti area yang menyebabkan model ResNet50 membuat prediksi untuk Kelas 240 untuk dataset Imagenet:

Lihat Notebook.
Tutorial logging sederhana
Tutorial logging malas
Menggunakan TensorWatch untuk Pelatihan Pembelajaran DEEP (MNIST)
Menggunakan TensorWatch untuk Pelatihan Pembelajaran yang mendalam (Food360)
Menjelajahi Data Menggunakan T-SNE
Penjelasan Predikasi untuk Jaringan Saraf Konvolusional
Melihat grafik model dan statistik
Rincian teknis lebih banyak tersedia di TensorWatch Paper (Konferensi EICS 2019). Tolong kutip ini sebagai:
@inproceedings{tensorwatch2019eics,
author = {Shital Shah and Roland Fernandez and Steven M. Drucker},
title = {A system for real-time interactive analysis of deep learning training},
booktitle = {Proceedings of the {ACM} {SIGCHI} Symposium on Engineering Interactive
Computing Systems, {EICS} 2019, Valencia, Spain, June 18-21, 2019},
pages = {16:1--16:6},
year = {2019},
crossref = {DBLP:conf/eics/2019},
url = {https://arxiv.org/abs/2001.01215},
doi = {10.1145/3319499.3328231},
timestamp = {Fri, 31 May 2019 08:40:31 +0200},
biburl = {https://dblp.org/rec/bib/conf/eics/ShahFD19},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
Kami akan menyukai kontribusi, umpan balik, pertanyaan, dan permintaan fitur Anda! Harap ajukan masalah github atau kirimkan permintaan tarik kepada kami. Harap tinjau kode perilaku Microsoft dan pelajari lebih lanjut.
Bergabunglah dengan grup TensorWatch di Facebook untuk tetap up to date atau ajukan pertanyaan.
TensorWatch menggunakan beberapa perpustakaan open source untuk banyak fiturnya. Ini termasuk: HiddenLayer, Torchstat, Visual-Attribution, PyZMQ, ReceptiveField, NBFormat. Silakan lihat bagian install_requires di setup.py untuk daftar tanggal.
Proyek ini dirilis di bawah lisensi MIT. Harap tinjau file lisensi untuk lebih jelasnya.