Apakah mungkin untuk memberikan perkiraan praktis tentang ukuran jaringan saraf yang dapat dilatih pada GPU kelas konsumen umum ? Sebagai contoh:
The Emergence of Locomotion (Reinforcement) kertas melatih jaringan menggunakan aktivasi tanh dari neuron. Mereka memiliki 3 lapisan NN dengan 300.200 unit untuk Planar Walker . Tetapi mereka tidak melaporkan perangkat keras dan waktu ...
Tapi bisakah aturan praktis dikembangkan? Juga hanya berdasarkan hasil empiris saat ini, jadi misalnya:
X Unit menggunakan aktivasi sigmoid dapat menjalankan iterasi pembelajaran Y per jam pada 1060.
Atau menggunakan fungsi aktivasi a bukannya b menyebabkan penurunan kinerja kali.
Jika seorang siswa / peneliti / penasaran ingin membeli GPU untuk bermain-main dengan jaringan ini, bagaimana Anda memutuskan apa yang Anda dapatkan? A 1060 tampaknya adalah opsi anggaran level awal, tetapi bagaimana Anda bisa mengevaluasi jika tidak pintar untuk hanya mendapatkan netbook jelek daripada membangun desktop berdaya tinggi dan menghabiskan $ yang dihemat untuk infrastruktur cloud on-demand.
Motivasi untuk pertanyaan: Saya baru saja membeli 1060 dan (pintar, untuk menanyakan pertanyaan setelah itu ya) bertanya-tanya apakah saya seharusnya hanya menyimpan $ dan membuat akun Google Cloud. Dan jika saya dapat menjalankan simulasi tesis master saya pada GPU.
sumber
Sebagai peringatan, saya akan menyarankan bahwa kecuali Anda mendorong batas teknologi yang mendasar, kecepatan komputasi dan sumber daya harus menjadi sekunder untuk alasan desain ketika mengembangkan arsitektur jaringan saraf.
Yang mengatakan, awal tahun ini saya menyelesaikan tesis MS saya yang melibatkan pipa analitik bioinformatika dengan data sekuensing genom keseluruhan - proyek yang membutuhkan lebih dari 100.000 jam waktu komputasi untuk berkembang menurut manajer pekerjaan klaster kami. Ketika Anda berada di tenggat waktu, sumber daya dapat menjadi kendala nyata dan kecepatan bisa menjadi sangat penting.
Jadi, untuk menjawab pertanyaan Anda saat saya memahaminya:
Apakah saya akan lebih baik menggunakan uang itu untuk membeli waktu di cloud?
Mungkin. Beberapa ratus dolar yang Anda habiskan untuk 1060 akan membawa Anda jauh melatih model Anda di awan. Lebih jauh, sejauh yang saya tahu, Anda tidak memerlukan GPU untuk melakukan cranking 100% setiap saat (Anda akan melakukannya jika, misalnya, menambang mata uang kripto). Akhirnya, dengan instance cloud Anda dapat meningkatkan skala, melatih beberapa model sekaligus, yang dapat mempercepat eksplorasi dan validasi arsitektur apa pun yang Anda pilih.
Apakah ada cara untuk mengukur waktu komputasi jaringan saraf pada GPU yang diberikan
Nah, Big O adalah salah satu penaksir, tetapi sepertinya Anda menginginkan metode yang lebih tepat. Saya yakin mereka ada, tetapi saya akan membantah bahwa Anda dapat membuat estimasi Anda dengan kembali sederhana dari perhitungan amplop yang memperhitungkan utas, memori, iterasi kode, dll. Apakah Anda benar-benar ingin menggali ke dalam pipa pemrosesan GPU pada 1060? Anda mungkin dapat menghasilkan estimasi yang sangat baik dengan memahami segala sesuatu yang terjadi antara kode Anda dan logam, tetapi pada akhirnya itu mungkin tidak sepadan dengan waktu dan upaya; kemungkinan akan mengkonfirmasi bahwa notasi Big O (model sederhana, jika Anda mau) menangkap sebagian besar variasi dalam waktu komputasi. Satu hal yang dapat Anda lakukan jika Anda melihat kemacetan adalah profil kinerja.
sumber
Tergantung pada apa yang Anda butuhkan. Anda dapat melatih berbagai ukuran jaringan pada sumber daya apa pun. Masalahnya adalah waktu pelatihan. Jika Anda ingin melatih Inception pada CPU rata-rata, akan membutuhkan waktu berbulan-bulan untuk bertemu. Jadi, itu semua tergantung pada berapa lama Anda bisa menunggu untuk melihat hasil Anda berdasarkan jaringan Anda. Seperti dalam jaring saraf kita tidak hanya memiliki satu operasi tetapi banyak (seperti menggabungkan, max pooling, padding dll), tidak mungkin untuk membuat estimasi seperti yang Anda cari. Mulailah melatih beberapa jaringan terkenal dan mengukur waktu. Kemudian, Anda dapat menginterpolasi berapa lama waktu yang dibutuhkan untuk melatih jaringan yang Anda cari.
sumber