Tensorflow: API Pembungkus Node.js (JavaScript)

Dibuat pada 9 Nov 2015  ·  246Komentar  ·  Sumber: tensorflow/tensorflow

Karena JavaScript itu Luar Biasa

contributions welcome

Komentar yang paling membantu

+1!

Semua 246 komentar

+1!

+1

:+1:

+1

Hanya apa yang saya cari. :+1:

Seperti dikutip dari situs resminya http://www.tensorflow.org/

kami berharap dapat menarik Anda untuk menyumbangkan antarmuka SWIG ke bahasa favorit Anda -- baik itu Go, Java, Lua, Javascript, atau R.

Saya baru mengenal seluruh SWIG ini tetapi mencari-cari dan menemukan ini. http://www.swig.org/Doc3.0/Javascript.html

Tidak begitu yakin bagaimana ini bekerja. Apakah kita perlu menulis file antarmuka swig khusus untuk Javascript atau apakah itu dibuat secara otomatis saat menjalankan beberapa perintah atau seseorang sudah mengerjakan ini (ini akan luar biasa)?

+1 :+1:

+1

+1

+1

+1

👍

:+1:

+1!

Baru memulai satu, tetapi baru menulis addon nodejs. Memeriksa file antarmuka swig untuk melihat apakah mereka akan membantu, atau apakah saya harus menggunakan c++ API.

+1

+1

+1

+1

Ini adalah sesuatu yang tidak mungkin ditangani oleh tim inti TensorFlow dalam waktu dekat, jadi jika Anda ingin berkontribusi, silakan! Saya akan merekomendasikan mengedarkan implementasi yang diusulkan pada milis diskusi sejak awal, sehingga konsensus tentang di mana API tersebut mungkin tinggal (dalam repo / off repo / di direktori 'contrib') dapat dicapai sebelumnya.

Adakah yang ingin menulis perpustakaan NodeJS? :+1:
Saya pikir akan lebih baik dengan API NodeJS resmi namun komunitas akan menjadi (jika tidak lebih) menarik menurut saya. Saya tahu ada beberapa cara untuk mendekati ini, namun saya sangat merekomendasikan node-gyp untuk kinerja. Saya dengan senang hati akan berkontribusi dengan cara apa pun yang saya bisa, namun, ini adalah sesuatu yang tidak akan dapat saya lakukan sendiri. Akan lebih baik jika beberapa orang lain juga tertarik, khususnya seseorang dengan pengetahuan C++.

:+1:

@Foorack Saya bersedia berkontribusi jika beberapa orang juga tertarik. Apakah mungkin untuk memindahkan diskusi ke saluran kendur? (lihat #31)

@tngan Saluran slack bersifat pribadi, namun saya dapat bergabung dengan tautan herokuapp. :+1:

Kami berharap lebih banyak pengembang untuk berdiskusi dan berkontribusi. Sekarang kita memiliki saluran slack bernama sebagai nodejs (lihat #31), dan repositori Github node-tensorflow dicadangkan. Terima kasih @Foorack !

Saya bersedia berkontribusi. Terima kasih atas inisiatifnya teman-teman!

@miguelalche Senang melihat Anda tertarik! Silakan bergabung dengan saluran slack dan seseorang akan menambahkan Anda ke repositori. ^^

Saya berharap dapat berkontribusi ( khususnya bersama dengan #132 ) !!

+1

Hore untuk simpul! Mari kita lakukan.

+1

+1

Berikut adalah artikel tentang cara memuat dan menjalankan grafik TensorFlow menggunakan C API: https://medium.com/jim-fleming/loading-tensorflow-graphs-via-Host-languages-be10fd81876f (termasuk kode sumber)

Usulan tersebut akan dirilis pada minggu depan. Terus lacak di https://github.com/node-tensorflow/node-tensorflow.

+1

Saya telah menerbitkan titik awal saya -- https://github.com/nikhilk/node-tensorflow yang akan dipublikasikan ke npm nanti.

@jimfleming - seperti pendekatan Anda (kami berdua menggunakan ffi ... Saya melakukannya untuk memulai dengan cepat). Apakah Anda akan membangun API gaya kerangka kerja tingkat yang lebih tinggi untuk mereplikasi pengalaman python? Itu langkah saya selanjutnya.

@nikhilk Terima kasih. Sesuatu seperti new tf.Tensor() alih-alih tf.NewTensor() mungkin merupakan tambahan yang bagus tetapi saya tidak berencana untuk memperluasnya saat ini. Saya hanya tertarik memuat grafik yang dibuat dengan python dan saya pikir saya suka minimalis.

+1

Proposal dirilis di sini dengan kemajuan saat ini.
https://github.com/node-tensorflow/node-tensorflow/tree/1.0.0

Ada masalah terbuka untuk diskusi.
https://github.com/node-tensorflow/node-tensorflow/issues/2

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

Akan sangat bagus untuk dapat dengan mudah menjalankan jaringan tensorflow di server berbasis node.js.

+1

+1

+1

+1

+1

+1

Saya sangat bersedia untuk berkontribusi. @Foorack tolong tambahkan saya ke apa pun yang Anda bisa! Saya memiliki kasus penggunaan kehidupan nyata untuk ini sehingga akan sangat bagus untuk mengembangkan dan mengujinya pada saat yang sama!!

@pushtheworldllc Saya senang Anda tertarik. :)
Repositori dan proposal dapat ditemukan di sini: https://github.com/node-tensorflow/node-tensorflow/
Anda dapat menggunakan tautan ini untuk bergabung dengan saluran slack kami: https://tensor-flow-talk-invite.herokuapp.com/

+1

+1

+1

+1 :+1:

+1 :+1:

Saya memiliki prototipe yang berfungsi menggunakan SWIG di sini: https://github.com/node-tensorflow/node-tensorflow/pull/13

Langkah selanjutnya adalah menentukan area yang awalnya akan dicakup oleh binding (harus berada dalam C++ API ) dan mulai mengimplementasikan file antarmuka SWIG untuk ini.

Jika ada yang memiliki pengalaman dengan SWIG, saya ingin berkolaborasi, karena sepertinya sebagian besar antarmuka python SWIG adalah penggantian khusus, dll. dan saya ingin tidak mereproduksi pekerjaan mereka. Selain itu, akan sangat bagus untuk mendapatkan kejelasan dari tim tensorflow tentang API apa yang baik untuk dicakup pada awalnya karena saya yakin peta jalan mereka memiliki banyak perubahan, dan saya tidak ingin berkonflik. (cc @martinwicke ?)

+1

+1 :+1:

+1

+1

+1

+1

+1

silakan coba gunakan tombol reaksi --> http://www.geekwire.com/2016/github-adds-reactions-keep-comments-track/ no more +1 comments xD

+1

:+1:

+1

+1

+1

@peterbraden maaf atas keheningan yang berkepanjangan. Kami sedang membangun C++ API, dan itu akan berkembang seiring waktu. Saya berharap bit yang paling berguna menjadi bagian yang diperlukan untuk menjalankan grafik yang ada. API pembuatan grafik C++ sedang dikerjakan ulang sekarang, jadi tidak terlalu berguna untuk menghabiskan banyak waktu untuk itu.

Saya akan senang jika Anda menyiapkan PR untuk menempatkan binding ini ke contrib/nodejs.

@martinwicke terima kasih atas dorongannya. Saya membuat tusukan awal di sini: https://github.com/tensorflow/tensorflow/pull/2206 - ini hanya bukti konsep yang memasukkan string versi ke nodejs. Saya akan mulai bekerja menambahkan antarmuka swig untuk hal-hal yang menjalankan grafik.

+10000

+1

+1

+1

+1

+1

+1

Ini akan menarik untuk ekspor grafik front-end murni untuk penggunaan langsung pada klien web. Bahkan jika input/output yang diinginkan yang diminta dari grafik akan di-hard-code dalam fungsi setara "sess.run" JS yang diekspor.

+1

:+1:

+1

+1

+1

+1

+1

Menemukan ini saat melihat apakah binding sudah ada atau belum. Akan mempelajari beberapa aliran tensor melalui python API saat ini sebelum meneliti lebih lanjut, tetapi saya telah membuat binding nodejs untuk lib C++ sebelumnya dan dapat memberi tahu Anda dari pengalaman bahwa swig adalah cara yang salah.

Jika Anda hanya menggunakan binding swig maka Anda akan memiliki kode pemblokiran sinkron di lingkungan async. Ikatan swig tidak menjalankan sesuatu pada utas IO, mereka mengeksekusi pada loop acara utama dari apa yang saya pahami/alami.

Setelah saya memiliki beberapa pengalaman aliran tensor dasar di bawah ikat pinggang saya, saya mungkin akan tertarik untuk membangun ikatan yang tepat. Jadi, jika ada yang serius tentang itu dan/atau ingin detail lebih lanjut tentang bekerja dengan modul v8, beri tahu saya.

Apakah ada tautan yang terkait dengan pengikatan simpul-gyp untuk API aliran tensor ??

@dmcmorris Saya sangat tertarik untuk membantu! Sumber daya apa yang Anda rekomendasikan untuk bekerja dengan modul v8? Kami dapat mengumpulkan tim di sini dan mulai menyelami materi secepatnya karena proyek ini sudah terlambat :)

+1

+1

+1

+1s

Apakah ada pembaruan??

Pada 31-Oct-2016 12:06 pm, "willshion" [email protected] menulis:

+1s


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/tensorflow/tensorflow/issues/37#issuecomment -257222936,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ANrvwrbmShC9c0_wsNpTudKSCb0-8qt8ks5q5Yx3gaJpZM4Ge5NV
.

Selamat Ulang Tahun TensorFlow!

https://research.googleblog.com/2016/11/celebrating-tensorflows-first-year.html

Saya perhatikan TensorFlow sekarang dapat diakses dari Go, Rust, dan Haskell. Mengapa mengabaikan JavaScript?

Benar-benar menunggu perpustakaan mesin di JavaScript.

+1

+1

👍

+1

+1.0000000000000000000000001

+1

+1

+1

+1

Saya menantikan untuk melihat API Node.js resmi. Tapi saya pikir ada beberapa masalah.

  1. JavaScript hanya memiliki 1 utas, pelatihan dapat memblokir seluruh proses kecuali menggunakan panggilan balik atau trik lainnya.
  2. kurangnya laboratorium sains lainnya, seperti numpy
  3. JavaScript hanya mendukung presisi 53bit.

lagi pula, JavaScript luar biasa!

Apakah ada yang mengerjakan ini?

Terlihat sangat sulit.

+1

sangat membutuhkannya!

@stackOverMind. Melakukan sedikit pencarian pada poin-poin itu. Saya belum mencoba semua ini dan mungkin tidak efisien untuk digunakan/dijalankan tetapi sepertinya ada hal-hal yang berpotensi menyelesaikan masalah tersebut.

+1

+1

+1 pweeettyyy pwease!!!

+1

+1

Menantikannya. 👍

+1

Menantikannya. :+1:

👍

+1

+1. Saya memiliki beberapa pengalaman di Node, dan akan melihat ini.

+1

+1 Tidak sabar, Python bagus, Node dan JS juga bagus

+1

+1 hanya demi itu

+1!

+1

image

+1 👍

+1

+1 akan keren

+1 <3

👍

👍

+100

+1

+1

:+1:

+2

+1 ;)

tanda

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

:+1:

+1

+1

+1

👍
Tolong !

+1

+1

Tanggal OP adalah dari 2015, sekarang 2017 dan tidak benar-benar diambil oleh siapa pun di proyek. Saya pikir saya mungkin hanya mendapatkan petunjuk bahwa tidak akan terjadi apa-apa mengenai masalah ini.

Adakah yang tahu jika ada diskusi yang sehat tentang tensorflow dan node di tempat lain karena +1 ini sepertinya tidak banyak membantu :(

+1

# +1

👍

+1

+1

:+1:

sudah 2 tahun dan masih belum berhasil?

Bagus. Persetan Javascript.

+1.0/0.0

Terinspirasi dari deep_recommend_system , saya sekarang mencoba cara lain untuk mengakses model dengan Node.js, melalui penyajian tensorflow. Ini masih dalam proses.

https://github.com/tngan/tensornode

ini bisa berguna keras-js

@sarkistlt Sayangnya tidak, kami TIDAK berbicara tentang melakukan implementasi javascript dari Tensorflow, yang dilakukan keras.js , tetapi kami berbicara memiliki pembungkus nodejs di sekitar api C++ dari Tensorflow, jadi itu membutuhkan pemahaman bagaimana menulis native add -on untuk NodeJs .
Berguna lainnya sumber .
Sayangnya pekerjaan harian saya bukan pengkodean dan membutuhkan kemahiran dalam C++, yang secara pribadi saya tidak miliki.

Omong-omong keras.js hanya melakukan inferensi, tidak ada pelatihan, jadi tidak ada backpropagation.
Pengembang Google menerapkan sebagian kecil Tensorflow di Javascript di taman bermain mereka, implementasi jaringan saraf ada di sini dan tidak termasuk propagasi balik .

Di sana saya mulai mengerjakan implementasi nodejs Tensorflow asli, akan lebih bagus jika ada yang bergabung
https://github.com/nodejs-tensorflow/nodejs-tensorflow

+1

+1

+1

+1

Saya sangat senang mendengar Anda mencoba ini @JIoJIaJIu. Potensi dampak dalam memecahkan masalah ini sangat besar. Ini adalah masalah kami yang paling banyak dipilih.

Sepintas, sejauh ini Anda tampaknya melakukan hal yang benar. Anda membuat ini dalam proyek terpisah dan menggunakan TensorFlow C API, seperti yang direkomendasikan @martinwicke sebelumnya.

Cara yang baik untuk menarik kontributor ke proyek Anda adalah dengan membagikan dokumen desain ke milis TensorFlow , seperti yang direkomendasikan Vincent beberapa tahun lalu. Dengan begitu, kami dapat membangun konsensus seputar visi Anda dan membantunya menjadi visi terbaik.

Tim TensorFlow ingin komunitas NodeJS mendapat manfaat dari TensorFlow. Jadi kami benar-benar tertarik untuk membantu individu yang mengabdikan diri untuk mewujudkannya menjadi sukses.

Jika seseorang di luar sana mendengarkan, ini sepertinya fitur yang paling banyak diminta untuk Tensorflow:

https://github.com/tensorflow/tensorflow/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20sort%3Areactions-%2B1-desc

+1

Hai semua, saya membuat perpustakaan penghubung Node.js untuk Tensorflow di: https://github.com/yorkie/tensorflow-nodejs tanpa SWIG, ini telah mendukung "grafik yang telah ditentukan berjalan" dan "konstruksi grafik" yang sangat sederhana, saya juga berencana untuk mendukung lebih banyak fitur klien di masa mendatang :)

Pada saat yang sama, saya akan sangat senang membuat ini digabungkan oleh grup resmi Tensorflow, yang akan menjadi PR tanpa biaya bagi saya :)

@yorkie Kelihatannya menarik, saya akan mencobanya! Namun kami tidak dapat menggabungkan kode GPL ke TensorFlow.

@yorkie terlihat luar biasa, apakah Anda ingin bergabung dengan proyek dan bergabung?

@ry yakin saya bisa mengubah lisensi pasti :)
@JIoJIaJIu Saya tidak tahu di mana tempat terbaik untuk memindahkan repo ini untuk saat ini, jika repo ini tidak cocok untuk memindahkan tensorflow org, saya pikir nodejs-tensorflow adalah tempat yang baik :)

Namun kami tidak dapat menggabungkan kode GPL ke TensorFlow.

@ry Memperbarui lisensi ke MIT dan @JIoJIaJIu bergabung dengan grup, terima kasih atas undangannya :)

+1

+1

+1

+1

+1

JavaScript API untuk TensorFlow diumumkan awal bulan ini. Lihat detailnya di beranda deeplearn.js .
Saya akan menutup bug (luas) ini sekarang. Jangan ragu untuk membuka FR lain yang lebih spesifik.

deeplearn.js adalah untuk browser dengan webgl, bukan SDK untuk node.js

Cukup adil. Saya melihat sekarang bahwa judul bug mereferensikan Node.js secara langsung.

@vincentvanhoucke ini bahkan bukan tentang node.js dalam judul. Berbicara tentang "deeplearn.js" dan "Tensorflow API untuk Javascript" seperti berbicara tentang apel & pir.

Pertama-tama - deeplearn.js adalah perpustakaan yang hanya mencerminkan sampai batas tertentu "gaya TensorFlow API" dan beroperasi murni di browser dan yang lainnya akan menjadi API langsung untuk seluruh kebaikan Tensorflow. Juga, itu bahkan tidak hampir disebut sebagai alternatif untuk Tensorflow... mungkin untuk penggemar tetapi tidak untuk penggunaan komersial, di mana seseorang akan membutuhkan sekelompok mesin untuk mengarahkan proses komputasi. Saya menganggapnya sebagai demo apa yang dapat Anda capai dengan JavaScript dan jaringan saraf ... rasa hal-hal yang akan datang ... ;-)

+1

+999

Ya Tuhan, berhenti mengirim pemberitahuan yang tidak berguna kepada orang-orang, ada alasan GitHub memperkenalkan reaksi 👍 dan .

+1 dan +999 hanya mengganggu orang dan tidak menambah nilai apa pun.

+1000

:+1:

+1

+1

PERHATIAN

Guys tolong sebelum berkomentar +1 atau +apa pun - Silakan lihat komentar @k1sul1

Ya Tuhan, berhenti mengirim pemberitahuan yang tidak berguna kepada orang-orang, ada alasan GitHub memperkenalkan reaksi 👍 dan . +1 dan +999 hanya mengganggu orang dan tidak menambah nilai apa pun.

@shahen94 kita semua melihatnya tapi tetap saja... kita js dev.

+1

@BruceHem tidak begitu yakin bagaimana menjadi js dev berkorelasi dengan secara membabi buta mendorong spam yang tidak perlu ke feed...

Anda semua sadar bahwa "+1" hanya membuat topik ini tidak dapat dibaca? Saya mengerti bahwa kita semua memiliki keinginan untuk mendukung kasus ini tetapi hanya dapat mengurangi bahwa pada github hal yang paling dekat dengan fungsi "pilih" diimplementasikan dengan "reaksi" bukan dengan jumlah komentar di utas ... atau apakah saya melewatkan sesuatu? ;-P

Lol :P utas ini mati bertahun-tahun yang lalu.
.
+1 Googolplex!

+1

Setuju dengan @thefill benar-benar "+1" hanya membuat topik ini tidak dapat dibaca, dan sebenarnya kami memiliki implementasi komunitas maka jika ada yang ingin menggunakan TensorFlow dengan Node.js atau JavaScript, coba saja dengan satu atau dua di atas, saya pikir ini mungkin menjadi awal yang baik dari komentar suara di sini.

Adapun saya, saya sedang mengerjakan https://github.com/yorkie/tensorflow-nodejs untuk membuatnya cukup fungsional seperti Python, dan masih memiliki waktu yang lama, tetapi pada dasarnya memiliki implementasi penuh untuk resmi language_bindings API . Itu berarti Anda masih dapat menggunakan Python untuk membuat grafik, tetapi memuat model dan menjalankannya dalam runtime Node.js. Bahasa lain selain Python juga dapat melakukan ini saat ini.

Saya juga meminta bantuan dari @ry untuk membuat repositori pribadi saya didukung secara resmi, ada beberapa hal yang harus kami lakukan seperti membangun beberapa model contoh terutama kasus RNN, tetapi sayangnya saya harus bekerja di bidang lain dan memiliki tidak ada waktu selama beberapa bulan ini, jika seseorang tertarik untuk mewujudkannya, kirimkan email kepada saya, saya akan dengan senang hati memandu Anda bagaimana memulainya. Mari berbuat sesuatu yang bermanfaat bagi masyarakat dalam doa terbaik :)

Sehubungan dengan proyek-proyek saat ini yang telah dimulai, dan khususnya tantangan bekerja dengan C API, saya memiliki saran tentang implementasi yang telah bekerja dengan baik untuk saya.

Karena python masih merupakan pembungkus yang paling kuat, ramah pengembang, dan berfitur lengkap di sekitar API Tensorflow, daripada mencoba "membuat ulang" API python untuk js, mengapa tidak membuat binding langsung KE API python? Ini masih memerlukan pembuatan add-on node C++ terlebih dahulu, tetapi alih-alih mengikat ke C API secara langsung, Anda dapat menggunakan python "tertanam" untuk menjalankan metode python langsung dari C++.

Ini tidak seperti solusi JS => Python lainnya di luar sana yang menyarankan untuk membuat skrip python ... Namun, dengan python tertanam, memori yang diakses oleh skrip python/array numpy Anda langsung mengarah ke buffer js Float32Array Anda.

Solusi ini bekerja dengan sangat baik untuk saya (walaupun memang mendapatkan js => C++ => python flow bekerja agak merepotkan). Karena saya memiliki kebutuhan khusus, saya belum menyelesaikan tugas mengikat setiap metode python TensorFlow individu, dan alih-alih hanya meneruskan data dan parameter hiper saya ke beberapa metode yang membangun sebagian besar grafik. Pengikatan individu penuh tidak akan terlalu buruk dari titik awal saya saat ini.

Saya menyambut setiap pemikiran atau saran tentang pendekatan yang diuraikan di atas. Terima kasih.

@djimoh5 Pemikiran luar biasa tentang JavaScript ke API berfitur lengkap Python! Di sisi lain, kami juga dapat menerapkan server RPC untuk TensorFlow Python API dengan fitur introspeksi, sehingga JavaScript dan klien bahasa lain dapat mengakses Python real-time. (Saya akan melakukan ini ketika saya tersedia, aha)

Tapi di sini ada sesuatu tentang mengapa membuat kembali beberapa fitur Python untuk JavaScript, karena mereka ditulis dalam JavaScript, mereka lebih berteman dengan pengembang JavaScript, dan mudah bagi pengembang untuk memodifikasi kode sumber untuk memeriksa apakah sesuatu yang berbeda mungkin, bukan hanya mendapatkan feed dari hulu :)

+1

Saya juga tertarik dengan nodejs tensorflow API untuk dapat menggunakannya dalam aliran node-red yang akan menghubungkan grafik tensorflows dan mungkin jenis node analisis data lainnya. Saya masih tidak tahu banyak tentang tensorflow. Ini mungkin bukan tempat yang tepat untuk bertanya tetapi saya ingin tahu mengapa pengembang lain mencari nodejs api/add-on untuk tensorflow ? Apa yang akan menjadi kasus penggunaan Anda?

@khelkun jawabannya agak sederhana: menyediakan paket JavaScript matang yang memungkinkan interaksi mudah dengan Tensorflow membuka banyak kemungkinan baru. JavaScript beroperasi di setiap platform seluler, semua sistem Operasi desktop utama & di semua browser sehingga kemungkinannya tidak terbatas.

Manfaat terbesar pasti akan datang dari aplikasi sisi server yang beroperasi pada node.js yang dapat berinteraksi langsung dengan Tensorflow, tetapi juga node-webkit (aplikasi desktop) berpotensi menelurkan lusinan proyek menarik.

Apakah pengelola komunitas /admin dari utas ini tidak dapat dengan mudah menghapus posting dari orang-orang yang secara sengaja mem-trolling dengan semua "+1" bahkan mungkin melarang mereka? Lol

Adakah yang mengerjakan integrasi ini yang mempertimbangkan untuk menggunakan WebAssembly (wasm)? Ini berpotensi menjadi solusi paling elegan untuk masalah ini, mengesampingkan semua JS yang berbicara dengan Python yang berbicara dengan C++, Anda tahu. Saya benar-benar tidak tahu banyak tentang internal TensorFlow, tetapi saya yakin bagian C++ dari TensorFlow dapat dikompilasi ke wasm (periksa fitur MVP yang didukung, tetapi Unreal Engine 4 dikompilasi ke pendahulu wasm dan berjalan dengan sukses di FireFox). Setelah C/C++ API dikompilasi ke wasm, Anda hanya perlu memastikan bahwa API yang diperlukan telah terbuka. wasm akan berjalan di Node.js, semua browser utama, dan bahkan di luar salah satunya, karena ini dimaksudkan sebagai bytecode yang sangat portabel. Ini sepertinya jalan terbaik bagi saya.

Sumber daya/diskusi terkait:

+1... kita tidak lagi hidup di bagian abad pertengahan dari era informasi. Tolong dukung node.js.

Mengapa ada orang yang membutuhkan perpustakaan Javascript lain? Mengapa ada orang yang menggunakan perpustakaan JS untuk melatih NN? Javascropt adalah bahasa desain yang buruk.

@AyalaSaenzJorge lol (karena Anda

Bagi Anda yang lebih serius dari troll ini Periksa https://deeplearnjs.org ... Ini dipengaruhi oleh tensorflow dan didukung oleh Google ... Mungkin daripada memulai dari awal, kami mungkin mempertimbangkan untuk memindahkannya ke Node.js sebagai gantinya

@AyalaSaenzJorge ini adalah tempat untuk komentar informatif, bukan
@somombo silakan lihat komentar saya dari 26 Agustus di mana saya menjelaskan mengapa deeplearnjs tidak relevan dengan perdebatan ini.

Oke maaf atas komentarnya.

El dik. 12, 2017 18:46, "Filip Dabrowski" [email protected]
deskripsi:

@AyalaSaenzJorge https://github.com/ayalasaenzjorge ini adalah tempat untuk
komentar informatif, bukan pemicu-pemicu berpendirian.
@somombo https://github.com/somombo silakan lihat komentar saya dari 26 Agustus
di mana saya menjelaskan mengapa deeplearnjs tidak relevan dengan perdebatan ini.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/tensorflow/tensorflow/issues/37#issuecomment-351232483 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AeZvKtru1EQjtRnoz6ZR36Kh-DTfVNozks5s_xBVgaJpZM4Ge5NV
.

+1

@cpple Ingat untuk tidak menambahkan +1, mereka menyebabkan kebisingan dan telah digantikan oleh reaksi. Coba beri komentar pertama jempol

Hanya ingin berbagi pembaruan -- https://github.com/nikhilk/node-tensorflow yang diperbarui dengan rencana untuk mendapatkan dukungan itu menggunakan grafik TensorFlow (dan yang lebih baru, model yang disimpan) untuk prediksi/inferensi di node.js. Pikir saya akan berbagi karena sejumlah orang telah menyatakan minatnya pada masalah ini.

Saya telah membuat garpu headless-gl yang bekerja dengan deeplearnjs (yang pada gilirannya bekerja dengan tensorflow) - ini memungkinkan model untuk dijalankan secara native di GPU dari node.js (perhatikan bahwa sejauh ini hanya diuji pada OSX).

Anda dapat menemukan petunjuk pemasangan dan contoh dasar di https://github.com/dfoody/headless-gl
Dan, tentu saja https://deeplearnjs.org untuk lebih jelasnya.

Petunjuk umum untuk menginstal di OSX:

brew install pkg-config cairo pango libpng jpeg giflib
npm install deeplearn-gl
npm install deeplearn

Dan contoh cepat untuk menunjukkan bagaimana itu digunakan bersama dengan deeplearnjs:

var gl = require('deeplearn-gl')
var dl = require('deeplearn');
var math = new dl.NDArrayMath('webgl');
var size = 3000;

var start = Date.now();

var a = dl.Array2D.ones([size, size]);
var b = dl.Array2D.ones([size, size]);

var result = math.matMul(a, b);

var promise = result.data().then(function(data) {
  console.log("done in ", (Date.now()-start)/1000, "seconds with value", data[0]);
}).catch(console.log);

@dfoody terima kasih telah berbagi ini dengan komunitas tetapi pernyataan "yang pada gilirannya bekerja dengan tensorflow" tidak benar. Deeplearn.js hanya menyediakan (kutipan dari situs web mereka) "model eksekusi yang mencerminkan API TensorFlow" - hanya itu yang umum dengan proyek TF, saya khawatir;-(

Juga silakan lihat komentar saya dari 26 Agustus di mana saya menjelaskan mengapa deeplearnjs tidak relevan dengan perdebatan ini.

@nikhilk luar biasa,

+1

propelml.org - Terlihat menarik. Saya belum pernah menggunakannya tetapi GPU-nya diaktifkan dan berjalan di browser dan di node

@7ammer propelml.org terlihat cukup menjanjikan. Terima kasih telah berbagi ini dengan kami ;-)

Karena NodeJS cepat! ;D

Jika anggota komunitas yang ambisius menginginkan kejayaan dalam memecahkan masalah ini, dan menggabungkannya ke dalam basis kode kontribusi TensorFlow, berikut adalah beberapa tip tentang bagaimana saya akan melakukannya. Harap dicatat saya tidak akan melakukan ini.

Anda dapat menambahkan Node ke workspace.bzl seperti yang dilakukan TensorBoard di
Harap dicatat TensorFlow tidak dapat bergantung pada rules_nodejs .

load("@io_bazel_rules_closure//closure:defs.bzl", "filegroup_external")

filegroup_external(
    name = "org_nodejs",
    # MIT with portions licensed:
    # - MIT
    # - Old MIT
    # - 2-Clause-BSD
    # - 3-Clause-BSD
    # - ISC
    # - Unicode
    # - zlib
    # - Artistic 2.0
    licenses = ["notice"],
    sha256_urls_extract_macos = {
        "910395e1e98fb351c62b5702a9deef22aaecf05d6df1d7edc283337542207f3f": [
            "https://mirror.bazel.build/nodejs.org/dist/v6.9.1/node-v6.9.1-darwin-x64.tar.xz",
            "http://nodejs.org/dist/v6.9.1/node-v6.9.1-darwin-x64.tar.xz",
        ],
    },
    sha256_urls_windows = {
        "1914bfb950be8d576ce9e49c8a0e51c9f2402560fe3c19093e69bc1306a56e9e": [
            "https://mirror.bazel.build/raw.githubusercontent.com/nodejs/node/v6.9.1/LICENSE",
            "https://raw.githubusercontent.com/nodejs/node/v6.9.1/LICENSE",
        ],
        "513923b0490ebb7466a56483a62595814ed9d036d6f35476debb0cd606bec526": [
            "https://mirror.bazel.build/nodejs.org/dist/v6.9.1/win-x64/node.exe",
            "http://nodejs.org/dist/v6.9.1/win-x64/node.exe",
        ],
        "3951aefa4afd6fb836ab06468b1fc2a69fa75bd66ec2f5a0e08c4e32547681e3": [
            "https://mirror.bazel.build/nodejs.org/dist/v6.9.1/win-x64/node.lib",
            "http://nodejs.org/dist/v6.9.1/win-x64/node.lib",
        ],
    },
    sha256_urls_extract = {
        "d4eb161e4715e11bbef816a6c577974271e2bddae9cf008744627676ff00036a": [
            "https://mirror.bazel.build/nodejs.org/dist/v6.9.1/node-v6.9.1-linux-x64.tar.xz",
            "http://nodejs.org/dist/v6.9.1/node-v6.9.1-linux-x64.tar.xz",
        ],
    },
    strip_prefix = {
        "node-v6.9.1-darwin-x64.tar.xz": "node-v6.9.1-darwin-x64",
        "node-v6.9.1-linux-x64.tar.xz": "node-v6.9.1-linux-x64",
    },
    executable = [
        "node",
        "node.exe",
    ],
    default_visibility = ["//tensorflow/contrib/node:__subpackages__"],
)

Sekarang katakanlah Anda ingin Anda memiliki program Node, misalnya tsc.js , yang ingin Anda bazel run //tensorflow/contrib/node:generate . Salah satu cara cepat Anda dapat melakukan ini di Bazel adalah dengan mendefinisikan makro di tensorflow/contrib/node/defs.bzl :

def node_binary(name, srcs, data=None, visibility=None, testonly=None, **kwargs):
  native.sh_binary(
      name = name,
      srcs = [name + ".sh"],
      data = srcs + data + ["@org_nodejs"],
      testonly = testonly,
      visibility = visibility,
      **kwargs
  )

  native.genrule(
      name = name + "_sh",
      srcs = [srcs[0]],
      outs = [name + ".sh"],
      cmd = "cat >$@ <<'EOF'\n" +
            "#!/bin/bash\n" +
            "NODE=external/org_nodejs/bin/node\n" +
            "if [[ -e external/org_nodejs/node.exe ]]; then\n" +
            "  NODE=external/org_nodejs/node.exe\n" +
            "fi\n" +
            "exec $${NODE} $(location " + srcs[0] + ") \"$$@\"\n" +
            "EOF",
      executable = True,
      testonly = testonly,
      visibility = ["//visibility:private"],
  )

Sekarang untuk bagian yang menyenangkan. Saya akan menulis satu file .js (bahkan jika harus sepanjang 30.000 baris seperti tex.web ) dengan nol dependensi selain pustaka standar Node. Input untuk program ini adalah ops.pbtxt dan semua file pbtxt lainnya di api_def/base_api . Keluaran dari program ini adalah tepat satu file C++ raksasa yang berbicara dengan TensorFlow C API dan Node C++ Addon API berdasarkan contoh ini .

load("//tensorflow/contrib/node:defs.bzl", "node_binary")
load("@domain_registry//java/google/registry/builddefs:zip_file.bzl", "zip_file")

node_binary(
    name = "generate",
    srcs = ["generate.js"],
    data = [
        "//tensorflow/core:ops/ops.pbtxt",
        "//tensorflow/core/api_def:base_api_def",
    ],
)

genrule(
    name = "api",
    srcs = [
        "//tensorflow/core:ops/ops.pbtxt",
        "//tensorflow/core/api_def:base_api_def",
    ],
    cmd = "$(location :generate) $(location api.cc) $(SRCS)",
    outs = ["api.cc"],
    tools = [":generate"],
)

zip_file(
    name = "tfnode",
    srcs = [
        "package.json",
        "README.md",
        "api.cc",
        "binding.gyp",
        "tfnode.js",
    ],
    mappings = {"tensorflow/contrib/node": "package"},
)

Kemudian Anda bazel build //tensorflow/contrib/node:tfnode.zip dan Anda sudah mendapatkan proyek NodeJS Anda semua dibundel dan siap untuk didistribusikan ke tempat-tempat seperti NPM.

Jika saya menulis ini (yang tidak akan saya lakukan) itu akan menjadi pemetaan langsung dari definisi TensorFlow API. Kemudian saya akan mendorong teman-teman kita di komunitas untuk melapisi perpustakaan. Ada keragaman visi di luar sana tentang JS dan ML API idiomatik tingkat tinggi modern yang ramah, masing-masing melayani kasus penggunaan yang berbeda. Namun mereka semua bisa berbagi ikatan ini secara umum.

Harap dicatat ada contoh di mana kami sudah menghasilkan binding bahasa. Lihat tensorflow/go/genop/main.go dan tensorflow/go/op/generate.go untuk mendapatkan inspirasi.

Sepertinya tim TensorFlow menjadikan ini prioritas utama sekarang: https://js.tensorflow.org/faq/

Kami mungkin ingin memindahkan diskusi ini ke sini: https://github.com/tensorflow/tfjs/issues/36

Kemajuan pada binding Node.js ke C API akan dilacak pada masalah tersebut.

Sebagai pembaruan untuk masalah ini - kami telah membuka sumber pengikatan Node.js untuk TFJS: https://github.com/tensorflow/tfjs-node

Kami sedang bekerja keras untuk mendapatkan build NPM yang tepat dan akan segera merilisnya!

Saya akan menutup masalah ini. Harap lacak tensorflow/tfjs dan tensorflow/tfjs-node untuk pembaruan lebih lanjut.

Terkait dan mungkin menarik: Saya berhasil menjalankan TF di browser melalui Webassembly. Lihat https://humantoanimal.com untuk demo; Saya akan memberikan rincian lebih lanjut di masa depan.

@nuchi , jadi apakah Anda mengkompilasi kode TensorFlow yang diperlukan dari C API ke WebAssembly? Atau apakah Anda menggunakan TensorFlow.js?

@lastmjs saya jelaskan lebih detail di link yang saya berikan. Versi singkat: Saya menambahkan Webassembly sebagai target kompilasi XLA. Saya tidak menggunakan Tensorflow.js dengan cara apa pun.

@nuchi Kerja bagus! dan saya tahu penelitian WebAssemble lain tentang TensorFlow di sini:
https://medium.com/@tomasreimers/compiling -tensorflow-for-the-browser-f3387b8e1e1c

Senang melihat ada kemajuan resmi dalam hal ini. Saya ingin memiliki daya komputasi GPU paralel yang cepat di ujung jari saya dengan kemudahan dan komposisi JS.

Saya mulai mengerjakan pengikatan NodeJS untuk TensorFlow beberapa waktu lalu, tetapi akhir-akhir ini saya tidak punya banyak waktu luang.

Konsepnya mirip dengan pendekatan yang disarankan @jart .

Saya memiliki tiga tujuan dalam pikiran untuk proyek ini:

1. Tidak perlu membangun atau memasang tensorflow

Sebagai gantinya, itu harus mengunduh dan menggunakan binari python multi-platform pra-bangun dan mengunduh file sumber apa pun yang diperlukan dengan cepat.

2. Tidak memerlukan reproduksi C++ atau JS lengkap atau abstraksi API

Sebaliknya, itu harus menyediakan antarmuka 1-ke-1 lengkap dengan C API, menyediakan abstraksi JS yang nyaman sebanyak mungkin.

3. Jangan pertahankan binding C API dengan tangan

Sebagai gantinya, itu harus menggunakan skrip swig untuk memetakan struktur data inti antara Tensorflow/stdc++/V8/node dan sisanya akan mengikuti.


Saya sudah cukup jauh dengan ini, tetapi terakhir saya ingat a mengalami masalah dengan segfault terkait TF_Session.

Saat ini hanya mengumpulkan debu, jadi jika seseorang ingin terjun dan membantu dengan ini, saya akan dengan senang hati menerima PR.

Penutupan saat ini diselesaikan

Apakah halaman ini membantu?
0 / 5 - 0 peringkat