Tensorflow: Node.js (جافا سكريبت) Wrapper API

تم إنشاؤها على ٩ نوفمبر ٢٠١٥  ·  246تعليقات  ·  مصدر: tensorflow/tensorflow

لأن JavaScript رائع

contributions welcome

التعليق الأكثر فائدة

+1!

ال 246 كومينتر

+1!

+1

: +1:

+1

فقط ما كنت أبحث عنه. : +1:

كما هو مقتبس من الموقع الرسمي http://www.tensorflow.org/

نأمل أن نحثك على المساهمة بواجهات SWIG للغتك المفضلة - سواء كانت Go أو Java أو Lua أو Javascript أو R.

أنا جديد في هذا الشيء من SWIG لكن بحثت عنه ووجدته. http://www.swig.org/Doc3.0/Javascript.html

لست متأكدا حقا كيف يعمل هذا. هل نحتاج إلى كتابة ملف واجهة swig خصيصًا لـ Javascript أم أنه يتم إنشاؤه تلقائيًا عند تشغيل بعض الأوامر أم أن شخصًا ما يعمل بالفعل على هذا (سيكون هذا رائعًا)؟

+1: +1:

+1

+1

+1

+1

👍

: +1:

+1!

بدأت للتو في واحدة ، لكنها جديدة في كتابة الملحق nodejs. التحقق من ملفات واجهة swig لمعرفة ما إذا كانت ستكون مفيدة ، أو ما إذا كان يجب علي استخدام واجهة برمجة تطبيقات c ++.

+1

+1

+1

+1

هذا شيء من غير المحتمل أن يتصدى له فريق TensorFlow الأساسي في المستقبل القريب ، لذا إذا كنت ترغب في المساهمة فيه ، يرجى المضي قدمًا! أود أن أوصي بتعميم تطبيق مقترح على قائمة المناقشة البريدية في وقت مبكر ، بحيث يمكن الوصول إلى توافق في الآراء حول المكان الذي قد تعيش فيه واجهة برمجة التطبيقات (في الريبو / إيقاف الريبو / في دليل "المساهمات") في وقت مبكر.

هل من أحد يكتب مكتبة NodeJS؟ : +1:
أعتقد أنه سيكون من الأفضل مع واجهة برمجة تطبيقات NodeJS الرسمية ، لكن المجتمع سيكون (إن لم يكن أكثر) ممتعًا في رأيي. أعلم أن هناك طرقًا متعددة للتعامل مع هذا ، لكنني أوصي بشدة بـ node-gyp للأداء. سأساهم بكل سرور بأي طريقة ممكنة ، ومع ذلك ، هذا شيء لن أكون قادرًا على القيام به بمفردي. سيكون من الأفضل إذا كان هناك عدد قليل من الأشخاص الآخرين مهتمين أيضًا ، خاصةً شخص لديه معرفة C ++.

: +1:

Foorack أنا على استعداد للمساهمة بها إذا كان بعض الأشخاص مهتمين أيضًا. هل من الممكن نقل المناقشة إلى قناة سلاك؟ (انظر رقم 31)

tngan قناة

نأمل المزيد من المطورين لمناقشة والمساهمة. الآن لدينا قناة Slack تسمى nodejs (انظر # 31) ، ومستودع Github node-tensorflow محجوز. Foorack !

أنا على استعداد للمساهمة. شكرا على المبادرة يا رفاق!

miguelalche سعيد لرؤية أنك مهتم! يرجى الانضمام إلى قناة Slack وسيضيفك شخص ما إلى المستودع. ^ ^

أتطلع إلى المساهمة (خاصة مع # 132) !!

+1

الصيحة للعقدة! هيا بنا نقوم بذلك.

+1

+1

إليك رسالة مكتوبة حول كيفية تحميل وتنفيذ الرسوم البيانية TensorFlow باستخدام واجهة برمجة تطبيقات C: https://medium.com/jim-fleming/loading-tensorflow-graphs-via-host-languages-be10fd81876f (الكود المصدري مضمن)

سيصدر الاقتراح في الأسبوع المقبل. استمر في التتبع على https://github.com/node-tensorflow/node-tensorflow.

+1

لقد قمت بنشر نقطة البداية الخاصة بي - https://github.com/nikhilk/node-tensorflow والتي سيتم نشرها إلى npm لاحقًا.

jimfleming - مثل

nikhilk شكرا. شيء مثل new tf.Tensor() بدلاً من tf.NewTensor() قد يكون إضافة رائعة لكنني لا أخطط لتوسيعها في الوقت الحالي. أنا مهتم فقط بتحميل الرسوم البيانية التي تم إنشاؤها في بيثون وأعتقد أنني أحب التقليلية.

+1

صدر الاقتراح هنا مع التقدم الحالي.
https://github.com/node-tensorflow/node-tensorflow/tree/1.0.0

هناك قضية مفتوحة للمناقشة.
https://github.com/node-tensorflow/node-tensorflow/issues/2

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

سيكون من الرائع أن تكون قادرًا على تشغيل شبكات tensorflow بسهولة في الخوادم القائمة على node.js.

+1

+1

+1

+1

+1

+1

أنا على استعداد للمساهمة. Foorack من فضلك أضفني إلى ما تستطيع! لدي حالة استخدام حقيقية لهذا ، لذا سيكون من الرائع تطويرها واختبارها في نفس الوقت !!

pushtheworldllc أنا سعيد لأنك مهتم. :)
يمكن العثور على المستودع والاقتراح هنا: https://github.com/node-tensorflow/node-tensorflow/
يمكنك استخدام هذا الرابط للانضمام إلى قناة Slack الخاصة بنا: https://tensor-flow-talk-invite.herokuapp.com/

+1

+1

+1

+1: +1:

+1: +1:

لدي نموذج أولي يعمل باستخدام SWIG هنا: https://github.com/node-tensorflow/node-tensorflow/pull/13

ستكون الخطوات التالية هي تحديد المناطق التي ستغطيها الارتباطات في البداية (يجب أن تكون ضمن C ++ API) والبدء في تنفيذ ملفات واجهة SWIG لهذه.

إذا كان أي شخص لديه خبرة مع SWIG ، فأنا أحب التعاون ، حيث يبدو أن قدرًا كبيرًا من واجهات Python SWIG عبارة عن تجاوزات مخصصة وما إلى ذلك ، وأنا حريص على عدم إعادة إنتاج أعمالهم. بالإضافة إلى ذلك ، سيكون من الرائع الحصول على بعض الوضوح من فريق tensorflow حول ما سيكون من الجيد تغطيته في البداية لأن خريطة الطريق الخاصة بهم بها العديد من التغييرات في الطريق ، ولا أريد التعارض. (سم مكعب @ مارتينويك ؟)

+1

+1: +1:

+1

+1

+1

+1

+1

من فضلك حاول استخدام زر ردود الفعل -> http://www.geekwire.com/2016/github-adds-reactions-keep-comments-track/ لا يوجد أكثر من +1 تعليقات xD

+1

: +1:

+1

+1

+1

@ peterbraden آسف على الصمت الطويل. نحن نبني واجهة برمجة تطبيقات C ++ ، وسوف تنمو بمرور الوقت. أتوقع أن تكون أكثر البتات المفيدة هي الأجزاء المطلوبة لتشغيل رسم بياني موجود. يتم الآن إعادة تصميم واجهة برمجة تطبيقات إنشاء الرسم البياني لـ C ++ ، لذلك ليس من المفيد بشكل خاص قضاء الكثير من الوقت عليها.

أود أن أعددت العلاقات العامة لوضع هذه الارتباطات في Contrib / nodejs.

martinwicke شكرا على التشجيع. لقد قمت بعمل طعنة أولية هنا: https://github.com/tensorflow/tensorflow/pull/2206 - هذا مجرد دليل على المفهوم الذي يجعل سلسلة الإصدار في nodejs. سأبدأ العمل على إضافة واجهات swig لأشياء تشغيل الرسم البياني.

+10000

+1

+1

+1

+1

+1

+1

سيكون هذا ممتعًا لتصدير الرسم البياني للواجهة الأمامية الخالصة للاستخدام المباشر على عملاء الويب. حتى لو كانت المدخلات / المخرجات المطلوبة المطلوبة من الرسم البياني ستكون مشفرة في دالة JS المصدرة "sess.run" المكافئة.

+1

: +1:

+1

+1

+1

+1

+1

وجدت هذا أثناء البحث في الرطوبة أو عدم وجود ارتباطات بالفعل. سوف نتعلم بعض تدفق الموتر عبر واجهة برمجة تطبيقات python الحالية قبل البحث عن المزيد ، لكنني قمت ببناء روابط nodejs لـ C ++ libs من قبل ويمكن أن أخبرك من التجربة أن swig هو الطريقة الخاطئة.

إذا كنت تستخدم روابط swig ، فسيكون لديك رمز حظر متزامن في بيئة غير متزامنة. لا تقوم روابط swig بتشغيل الأشياء على سلاسل عمليات الإدخال والإخراج ، بل يتم تنفيذها في حلقة الحدث الرئيسية مما أفهمه / خبرته.

بمجرد أن يكون لدي بعض تجربة تدفق الموتر الأساسية تحت حزامي ، من المحتمل أن أكون مهتمًا ببناء روابط مناسبة. لذلك إذا كان أي شخص جادًا في ذلك و / أو يريد مزيدًا من التفاصيل حول العمل مع وحدات v8 ، فأخبرني بذلك.

هل هناك أي ارتباط متعلق بربط node-gyp لواجهة برمجة تطبيقات تدفق الموتر؟

dmcmorris أنا مهتم بجدية بتقديم يد المساعدة! ما هي الموارد التي توصي بها للعمل مع وحدات v8؟ يمكننا تجميع فريق هنا والبدء في الغوص في المواد في أسرع وقت ممكن لأن هذا المشروع قد فات موعده :)

+1

+1

+1

+ 1s

هل يوجد تحديث ؟؟

بتاريخ 31 أكتوبر 2016 ، الساعة 12:06 مساءً ، كتب "willshion" [email protected] :

+ 1s

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/tensorflow/tensorflow/issues/37#issuecomment -257222936 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ANrvwrbmShC9c0_wsNpTudKSCb0-8qt8ks5q5Yx3gaJpZM4Ge5NV
.

ذكرى سنوية سعيدة TensorFlow!

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

لاحظت أن TensorFlow يمكن الوصول إليه الآن من Go و Rust و Haskell. لماذا نتجاهل JavaScript؟

حقًا في انتظار مكتبة آلة في JavaScript.

+1

+1

💯 👍

+1

+1.0000000000000000000000001

+1

+1

+1

+1

إنني أتطلع إلى رؤية واجهة برمجة تطبيقات Node.js رسمية ، لكنني أعتقد أن هناك بعض المشكلات.

  1. تحتوي JavaScript على مؤشر ترابط واحد فقط ، يمكن أن يمنع التدريب العملية برمتها ما لم يتم استخدام عمليات الاسترجاعات أو الحيل الأخرى.
  2. عدم وجود مختبرات العلوم الأخرى ، مثل numpy
  3. يدعم JavaScript دقة 53 بت فقط.

على أي حال ، JavaScript رائع!

هل هناك من يعمل على هذا؟

تبدو صعبة للغاية.

+1

جدا في حاجة إليها!

تضمين التغريدة أجرى بحثًا بسيطًا عن تلك النقاط. لم أجرب أيًا من هذه الأشياء وقد لا تكون فعالة في الاستخدام / التشغيل ولكن يبدو أن هناك أشياء موجودة لحل هذه المشكلات على الأرجح.

+1

+1

+1 pweeettyyy pwease !!!

+1

+1

نتطلع إلى ذلك. 👍

+1

نتطلع إلى ذلك. : +1:

👍

+1

+1. لدي بعض الخبرة في Node ، وسألقي نظرة على هذا.

+1

+1 لا يمكن أن تنتظر ، Python رائعة ، Node و JS رائعان أيضًا

+1

+1 فقط من أجل ذلك

+1!

+1

image

+1

+1

+1 سيكون رائعًا

+1 <3

👍

👍

+100

+1

+1

: +1:

+2

+1 ؛)

علامة

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

: +1:

+1

+1

+1

👍
لو سمحت !

+1

+1

كان تاريخ OP من عام 2015 ، وهو الآن 2017 ولم يتم اختياره بالفعل من قبل أي شخص في المشروع. أعتقد أنني ربما أتلقى تلميحًا بأنه لن يحدث شيء بخصوص هذه المشكلة.

هل يعرف أي شخص ما إذا كان هناك أي نقاش صحي بشأن Tensorflow والعقدة في أي مكان آخر لأن إجراءات +1 هذه لا يبدو أنها تفعل الكثير :(

+1

# +1

👍

+1

+1

: +1:

لقد مرت سنتان وما زلت لا حظ؟

حسن. يمارس الجنس مع جافا سكريبت.

+ 1.0 / 0.0

استخدم https://github.com/cazala/synaptic متشابك

مستوحى من deep_recommend_system ، أحاول الآن طريقة أخرى للوصول إلى النموذج باستخدام Node.js ، من خلال خدمة tensorflow. هذا لا يزال قيد التقدم.

https://github.com/tngan/tensornode

قد يكون هذا مفيدًا لـ keras-js

sarkistlt للأسف لا ، نحن لا نتحدث عن تنفيذ تطبيق جافا سكريبت لـ Tensorflow ، وهو ما يفعله keras.js ، لكننا نتحدث عن وجود غلاف nodejs حول C ++ api من Tensorflow ، لذلك يتطلب فهم كيفية كتابة إضافة أصلية -ons لـ NodeJs .
مصدر مفيد آخر.
لسوء الحظ ، وظيفتي اليومية ليست ترميزًا وتتطلب إتقان C ++ ، وهو ما لا أملكه شخصيًا.

بالمناسبة keras.js لا يقوم إلا بالاستدلال ، بدون تدريب ، لذلك لا يوجد انتشار عكسي.
مطوري جوجل تنفيذ جزء صغير من Tensorflow في جافا سكريبت في حياتهم الملعب ، وتنفيذ الشبكة العصبية هو هنا ولا تشمل نشر الخلفي .

لقد بدأت العمل على تنفيذ Nodejs الأصلي Tensorflow ، وسيكون رائعًا إذا انضم أي شخص
https://github.com/nodejs-tensorflow/nodejs-tensorflow

+1

+1

+1

+1

أنا سعيد جدًا لسماع أنك تعطي هذه الصورةJIoJIaJIu. إن إمكانية التأثير في حل هذه المشكلة هائلة. إنها قضيتنا الأكثر تصويتًا.

في لمحة خاطفة ، يبدو أنك حتى الآن تفعل الشيء الصحيح. لقد أنشأت هذا في مشروع منفصل وتستخدم TensorFlow C API ، كما أوصى martinwicke سابقًا.

تتمثل إحدى الطرق الجيدة لجذب المساهمين إلى مشروعك في مشاركة مستند التصميم مع أوصى فينسنت قبل بضع سنوات. بهذه الطريقة يمكننا بناء إجماع حول رؤيتك ومساعدتها على أن تكون أفضل رؤية ممكنة.

يريد فريق TensorFlow أن يستفيد مجتمع NodeJS من TensorFlow. لذلك نحن مهتمون تمامًا بمساعدة الفرد المخلص لتحقيق ذلك ليكون ناجحًا.

إذا كان هناك شخص ما يستمع ، يبدو أن هذه هي الميزة الأكثر طلبًا لـ Tensorflow:

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

+1

مرحبًا بالجميع ، لقد أنشأت مكتبة تجسير Node.js لـ Tensorflow على: https://github.com/yorkie/tensorflow-nodejs بدون SWIG ، فقد دعمت "تشغيل الرسم البياني المحدد مسبقًا" و "إنشاء الرسم البياني" البسيط جدًا ، أنا تخطط أيضًا لدعم المزيد من ميزات العميل في المستقبل :)

في الوقت نفسه ، يسعدني جدًا أن أجعل هذا يتم دمجه من قبل مجموعة Tensorflow الرسمية ، وسيكون ذلك بمثابة علاقات عامة بدون تكلفة بالنسبة لي :)

yorkie يبدو مثيرًا للاهتمام ،

yorkie يبدو رائعًا ، هل ترغب في الانضمام إلى المشروع وتوحيد الجهود؟

@ حاول بالتأكيد أنه يمكنني تغيير الترخيص بالتأكيد :)
JIoJIaJIu لا

ومع ذلك ، لا يمكننا دمج كود GPL في TensorFlow.

ry تم تحديث الترخيص لـ MIT وانضم JIoJIaJIu إلى المجموعة ، شكرًا على الدعوة :)

+1

+1

+1

+1

+1

تم الإعلان عن واجهات برمجة تطبيقات JavaScript لـ TensorFlow في وقت سابق من هذا الشهر. انظر التفاصيل على الصفحة الرئيسية deeplearn.js .
سأغلق هذا الخطأ (الواسع) الآن. لا تتردد في فتح FRs أخرى أكثر تحديدًا.

deeplearn.js للمتصفح مع webgl ، وليس sdk لـ node.js

عادل بما يكفي. أرى الآن أن عنوان الخطأ يشير إلى Node.js مباشرة.

vincentvanhoucke لا يتعلق الأمر حتى بـ node.js في العنوان. يشبه الحديث عن "deeplearn.js" و "Tensorflow API for Javascript" الحديث عن التفاح والكمثرى.

بادئ ذي بدء - deeplearn.js مكتبة تعكس إلى حد ما "أسلوب TensorFlow API" وتعمل فقط في المتصفح والأخرى ستكون واجهة برمجة تطبيقات مباشرة إلى Tensorflow الجيد. أيضًا ، ليس قريبًا من أن يُطلق عليه بديل لـ Tensorflow ... ربما للهواة ولكن ليس للاستخدام التجاري ، حيث يحتاج المرء إلى مجموعات من الآلات لتوجيه عملية الحوسبة. أعتقد أنه عرض توضيحي لما يمكنك تحقيقه باستخدام JavaScript والشبكات العصبية ... لمحة عن الأشياء القادمة ... ؛-)

+1

+999

يا يسوع المسيح ، توقف عن إرسال إشعارات عديمة الفائدة للناس ، هناك سبب لتقديم GitHub 👍 و 👎 ردود الفعل.

+1 و +999 تزعج الناس فقط ولا تضيف أي قيمة على الإطلاق.

+1000

: +1:

+1

+1

الانتباه

😄 يرجى الرجال قبل التعليق +1 أو + أيًا كان - يرجى إلقاء نظرة على تعليق @ k1sul1

يا يسوع المسيح ، توقف عن إرسال إشعارات عديمة الفائدة للناس ، هناك سبب لتقديم GitHub 👍 و 👎 ردود الفعل. +1 و +999 تزعج الناس فقط ولا تضيف أي قيمة على الإطلاق.

@ shahen94 لقد رأينا جميعًا ذلك ولكن ما زلنا ... نحن js dev.

+1

BruceHem لست متأكدًا حقًا من كيفية ارتباط كونك js dev بالدفع الأعمى للبريد العشوائي غير الضروري إلى الخلاصة ... 😄

تعلمون جميعًا أن "+1" تجعل هذا الموضوع غير قابل للقراءة؟ أتفهم أن لدينا جميعًا الرغبة في دعم هذه الحالة ، ولكن يمكننا فقط استنتاج أنه في أقرب شيء على Github ، يتم تنفيذ وظيفة "التصويت" باستخدام "ردود الفعل" وليس مع عدد التعليقات في الموضوع ... أو هل فاتني شيء ما؟ ؛-P

لول: P هذا الموضوع مات منذ سنوات.
.
+1 Googolplex!

+1

تم الاتفاق مع thefill على أن "+1" تمامًا تجعل هذا الموضوع غير قابل للقراءة ، وفي الواقع كان لدينا تطبيقات مجتمعية ، فإذا أراد أي شخص استخدام TensorFlow مع Node.js أو JavaScript ، فجرّب فقط ما سبق واحدًا أو اثنين ، أعتقد أن هذا قد تكون بداية جيدة من التعليقات هنا.

بالنسبة لي ، كنت أعمل على https://github.com/yorkie/tensorflow-nodejs لجعله وظيفيًا بدرجة كافية مثل Python ، ولا يزال أمامه وقت طويل ، ولكنه يحتوي بشكل أساسي على التنفيذ الكامل لواجهة برمجة تطبيقات language_bindings الرسمية . هذا يعني أنه لا يزال بإمكانك استخدام Python لإنشاء رسم بياني ، ولكن تحميل النماذج وتشغيلها في وقت تشغيل Node.js. يمكن للغات أخرى باستثناء Python القيام بذلك حاليًا.

كنت أطلب أيضًا المساعدة من ry لإنشاء مستودعي الشخصي ليتم دعمه رسميًا ، وهناك القليل من الأشياء التي يتعين علينا القيام بها مثل بناء بعض نماذج النماذج خاصةً حالات RNN ، لكن لسوء الحظ ، يجب أن أعمل في مجالات أخرى ولدي لا يوجد وقت لهذه الأشهر القليلة ، إذا كان شخص ما مهتمًا بتحقيق ذلك ، أرسل لي بريدًا إلكترونيًا ، فأنا أحب أن أرشدك إلى كيفية البدء. لنفعل شيئًا مفيدًا للمجتمع في أفضل التمنيات :)

فيما يتعلق بالمشاريع الحالية التي بدأت ، وتحديداً تحديات العمل مع C API ، لدي اقتراح بشأن التنفيذ الذي نجح معي.

نظرًا لأن Python لا يزال هو الغلاف الأكثر قوة وصديقًا للمطورين وكامل الميزات حول واجهة برمجة تطبيقات Tensorflow ، بدلاً من محاولة "إعادة إنشاء" واجهة برمجة تطبيقات python لـ js ، فلماذا لا تنشئ روابط مباشرة إلى Python API؟ لا يزال هذا يتطلب إنشاء وظيفة إضافية لعقدة C ++ أولاً ، ولكن بدلاً من الارتباط بواجهة برمجة تطبيقات C مباشرةً ، يمكنك استخدام python "المضمنة" لتشغيل طرق python مباشرةً من C ++.

هذا على عكس JS => حلول Python الأخرى التي تقترح ببساطة إنتاج برنامج نصي من Python ... حل غير قابل للتطبيق لأي مشاكل تعلم ذات حجم معقول بسبب تكلفة نقل البيانات المكثفة (الوقت) بين العمليات. ومع ذلك ، باستخدام لغة python المضمنة ، تشير الذاكرة التي يتم الوصول إليها عن طريق نصوص Python / مصفوفات numpy مباشرة إلى المخازن المؤقتة js Float32Array.

يعمل هذا الحل جيدًا بالنسبة لي (على الرغم من أن الحصول على js الأولي => C ++ => عمل تدفق Python كان نوعًا من الألم). نظرًا لأن لدي احتياجات محددة ، لم أقم بمهمة الارتباط بكل طريقة من طرق Python TensorFlow الفردية ، وبدلاً من ذلك ، قم بتمرير بياناتي والمعلمات الفائقة إلى عدد قليل من الطرق التي تبني معظم الرسم البياني. لن يكون الربط الفردي الكامل سيئًا للغاية من نقطة البداية الحالية.

أرحب بأي أفكار أو اقتراحات حول النهج الموضح أعلاه. شكرا.

@ djimoh5 أفكار الميزات ! من ناحية أخرى ، يمكننا أيضًا وضع تنفيذ لخادم RPC لواجهات برمجة تطبيقات TensorFlow Python مع ميزة الاستبطان ، بحيث يمكن لجافا سكريبت وعملاء اللغة الآخرين الوصول إلى Python في الوقت الفعلي. (سأفعل هذا عندما أكون متاحًا ، آها)

ولكن إليك شيئًا عن سبب إعادة إنشاء بعض ميزات Python لجافا سكريبت ، نظرًا لأنها مكتوبة بلغة JavaScript ، فهي أكثر صداقة لمطوري JavaScript ، ومن السهل على هؤلاء المطورين تعديل شفرة المصدر للتحقق مما إذا كان هناك شيء مختلف ممكن ، وليس مجرد الحصول على يغذي من المنبع :)

+1

أنا مهتم أيضًا بواجهة برمجة تطبيقات nodejs tensorflow لأتمكن من استخدامها في التدفقات ذات العقدة الحمراء التي من شأنها أن تسلسل الرسوم البيانية لـ tensorflows وقد تكون أنواعًا أخرى من عقد تحليل البيانات. ما زلت لا أعرف الكثير عن Tensorflow. قد لا يكون المكان المناسب لطرح الأسئلة ولكن أود أن أعرف لماذا يبحث المطورون الآخرون عن nodejs api / add-on لـ tensorflow؟ ماذا ستكون حالات الاستخدام الخاصة بك؟

إجابة khelkun بسيطة نوعًا ما: توفير حزمة JavaScript ناضجة تسمح بالتفاعل السهل مع Tensorflow يفتح إمكانيات جديدة لا تعد ولا تحصى. تعمل JavaScript على كل منصة متنقلة ، وجميع أنظمة تشغيل سطح المكتب الرئيسية وفي جميع المتصفحات ، لذا فإن الاحتمالات لا حصر لها.

ستأتي أكبر الفوائد بالتأكيد من التطبيقات من جانب الخادم التي تعمل على node.js والتي يمكن أن تتفاعل مباشرة مع Tensorflow ، ولكن أيضًا node-webkit (تطبيقات سطح المكتب) من المحتمل أن تفرز العشرات من المشاريع المثيرة للاهتمام.

هل منظمو المجتمع / المسؤولون عن سلسلة الرسائل هذه غير قادرين على حذف مشاركات هؤلاء الأشخاص الذين يتصيدون بشكل مكثف مع جميع "إجراءات 1+" وربما حتى حظرهم؟

هل فكر أي شخص يعمل على هذا التكامل باستخدام WebAssembly (wasm)؟ من المحتمل أن يكون هذا هو الحل الأكثر أناقة لهذه المشكلة ، حيث يتجنب كل JS التحدث إلى Python بالتحدث إلى C ++ ، كما تعلم. لا أعرف الكثير عن العناصر الداخلية لـ TensorFlow ، لكنني أعتقد أن أجزاء C ++ من TensorFlow يمكن تجميعها إلى wasm (تحقق من ميزات MVP المدعومة ، ولكن تم تجميع Unreal Engine 4 لسابق wasm وتشغيله بنجاح في FireFox). بمجرد تجميع واجهة برمجة تطبيقات C / C ++ إلى wasm ، تحتاج فقط إلى التأكد من كشف واجهة برمجة التطبيقات الضرورية. سيتم تشغيل wasm في Node.js ، وجميع المتصفحات الرئيسية ، وحتى خارج أي منها ، نظرًا لأنه من المفترض أن يكون رمزًا ثنائيًا محمولًا للغاية. يبدو أن هذا هو أفضل طريق للمضي قدما بالنسبة لي.

الموارد ذات الصلة / المناقشة:

+1 ... لم نعد نعيش في جزء القرون الوسطى من عصر المعلومات. الرجاء دعم node.js.

لماذا قد يحتاج أي شخص مكتبة جافا سكريبت أخرى؟ لماذا يستخدم أي شخص مكتبة JS لتدريب NNs؟ Javascropt هي لغة سيئة الوصف.

AyalaSaenzJorge lol (بما أنك

لأولئك منكم الأكثر جدية من هذا القزم ، راجع https://deeplearnjs.org ... إنه متأثر بـ Tensorflow ومدعوم من Google ... ربما بدلاً من البدء من نقطة الصفر ، قد نفكر في نقل ذلك إلى Node.js بدلاً من ذلك

somombo نعم ، يبدو مثيرًا للاهتمام حقًا. RE: tensorflow + deeplearnjs ، راجع esp:

AyalaSaenzJorge ، هذا مكان للتعليقات المفيدة ، وليس مكانًا يتسم بآرائه.
somombo ، يرجى الاطلاع على تعليقي من 26 أغسطس حيث أشرح سبب عدم ارتباط deeplearnjs بهذا النقاش.

طيب آسف للتعليق.

ايل ديك. 12 ، 2017 6:46 مساءً ، "Filip Dabrowski" [email protected]
escribió:

AyalaSaenzJorge https://github.com/ayalasaenzjorge هذا مكان
تعليقات إعلامية ، وليس حارات نارية ذات رأي.
somombo https://github.com/somombo يرجى الاطلاع على تعليقي من 26 أغسطس
حيث أشرح لماذا لا علاقة لـ deeplearnjs بهذا النقاش.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/tensorflow/tensorflow/issues/37#issuecomment-351232483 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AeZvKtru1EQjtRnoz6ZR36Kh-DTfVNozks5s_xBVgaJpZM4Ge5NV
.

+1

cpple تذكر عدم إضافة +1 ، فهي تسبب ضوضاء وتم استبدالها بردود فعل. حاول إعطاء التعليق الأول إبهامًا

فقط تريد مشاركة تحديث - تم تجديده https://github.com/nikhilk/node-tensorflow مع خطة للحصول على هذا الدعم باستخدام الرسوم البيانية TensorFlow (والنماذج المحفوظة لاحقًا) للتنبؤ / الاستدلال في node.js. أعتقد أنني سأشاركه منذ أن أعرب عدد من الأشخاص عن اهتمامهم بهذه القضية.

لقد قمت بإنشاء شوكة من glless-gl التي تعمل مع deeplearnjs (والتي تعمل بدورها مع tensorflow) - وهذا يسمح للنماذج بالعمل محليًا على وحدة معالجة الرسومات من node.js (لاحظ أنه تم اختبارها فقط على OSX حتى الآن).

يمكنك العثور على إرشادات التثبيت وعينة أساسية على https://github.com/dfoody/headless-gl
وبالطبع https://deeplearnjs.org لمزيد من التفاصيل.

إرشادات عامة للتثبيت على OSX:

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

وعينة سريعة لإظهار كيفية استخدامها مع 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 شكرًا لك على مشاركة هذا مع المجتمع ولكن العبارة "التي تعمل بدورها مع tensorflow" غير صحيحة. Deeplearn.js يقدم فقط (اقتباس من موقعه على الويب) "نموذج تنفيذ يعكس TensorFlow API" - هذا كل ما تشترك فيه مع مشروع TF ، أخشى ؛- (

يرجى أيضًا الاطلاع على تعليقي من 26 أغسطس حيث أشرح سبب عدم ارتباط deeplearnjs بهذا النقاش.

nikhilk مذهل ،

+1

propelml.org - تبدو مثيرة للاهتمام. لم أستخدمه ولكن تم تمكين GPU الخاص به وتشغيله في كل من المتصفح والعقدة

@ 7ammer propelml.org يبدو واعدًا إلى حد ما. شكرا لمشاركتك هذا معنا ؛-)

لأن NodeJS سريع! ؛د

إذا كان أحد الأعضاء الطموحين في المجتمع يريد المجد لحل هذه المشكلة ، ودمجها في قاعدة كود مساهمات TensorFlow ، فإليك بعض النصائح حول كيفية القيام بذلك. يرجى ملاحظة أنني لن أفعل هذا.

يمكنك إضافة Node إلى workspace.bzl تمامًا كما فعل TensorBoard في
يرجى ملاحظة أن TensorFlow لا يمكن أن يعتمد على 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__"],
)

لنفترض الآن أنك تريد أن يكون لديك برنامج Node ، مثل tsc.js ، والذي تريد تحويله إلى شيء يمكنك bazel run //tensorflow/contrib/node:generate . إحدى الطرق السريعة للقيام بذلك في Bazel هي تحديد ماكرو بـ 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"],
  )

الآن للجزء الممتع. أود كتابة ملف .js واحد (حتى لو كان يجب أن يكون طوله 30000 سطر مثل tex.web ) بدون تبعيات بخلاف مكتبة Node القياسية. ستكون مدخلات هذا البرنامج ops.pbtxt وجميع ملفات pbtxt الأخرى في api_def / base_api . سيكون الإخراج إلى هذا البرنامج عبارة عن ملف C ++ واحد عملاق يتحدث إلى TensorFlow C API و Node C ++ Addon API استنادًا إلى هذا المثال .

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"},
)

ثم لديك bazel build //tensorflow/contrib/node:tfnode.zip وبام لديك مشروع NodeJS الخاص بك مجمّعًا وجاهزًا للتوزيع في أماكن مثل NPM.

إذا كتبت هذا (وهو ما لن أفعله) فسيكون ذلك بمثابة رسم خرائط مجردة مباشرة لتعريفات TensorFlow API. ثم أشجع أصدقاءنا في المجتمع على تكسية المكتبة. هناك مجموعة متنوعة من الرؤى حول واجهات برمجة تطبيقات JS و ML API الحديثة الودية عالية المستوى ، كل منها يلبي حالات الاستخدام المختلفة. ومع ذلك يمكنهم جميعًا مشاركة هذا الارتباط بشكل مشترك.

يرجى ملاحظة أن هناك أمثلة حيث نقوم بالفعل بإنشاء روابط لغوية. راجع tensorflow / go / genop / main.go و tensorflow / go / op / create.go للحصول على الإلهام.

يبدو أن فريق TensorFlow يجعل هذا أولوية قصوى الآن: https://js.tensorflow.org/faq/

قد نرغب في نقل هذه المناقشة إلى هنا: https://github.com/tensorflow/tfjs/issues/36

سيتم تتبع التقدم المحرز في ارتباطات Node.js بواجهة برمجة تطبيقات C في هذه المشكلة.

كتحديث لهذه المشكلة - قمنا بفتح مصدر ربط Node.js لـ TFJS: https://github.com/tensorflow/tfjs-node

نحن نعمل بجد للحصول على إنشاء NPM مناسب وسنصدره قريبًا!

سأغلق هذه القضية. يرجى تتبع tensorflow / tfjs و tensorflow / tfjs-node لمزيد من التحديثات.

ذات صلة وربما مثيرة للاهتمام: تمكنت من تشغيل TF في المتصفح عبر Webassembly. راجع https://humantoanimal.com للحصول على عرض توضيحي ؛ سأقدم المزيد من التفاصيل في المستقبل.

nuchi ، فهل جمعت كود TensorFlow الضروري من C API إلى WebAssembly؟ أو هل تستخدم TensorFlow.js؟

lastmjs أشرح بمزيد من التفصيل في الرابط الذي قدمته. الإصدار المختصر: لقد أضفت Webassembly كهدف تجميع XLA. لم أستخدم Tensorflow.js بأي شكل من الأشكال.

nuchi عمل عظيم! وأعرف بحث WebAssemble آخر عن TensorFlow هنا:
https://medium.com/@tomasreimers/compiling -tensorflow-for-the-browser-f3387b8e1e1c

يسعدني أن أرى أن هناك تقدمًا رسميًا في هذا الشأن. أرغب في الحصول على قوة حوسبة GPU سريعة ومتوازية في متناول يدي مع سهولة وتكوين JS.

لقد بدأت العمل على ربط NodeJS لـ TensorFlow منذ فترة ، ولكن لم يكن لدي الكثير من وقت الفراغ

المفهوم مشابه لمقاربةjart المقترحة.

كان لدي ثلاثة أهداف في ذهني للمشروع:

1. لا تتطلب بناء أو تركيب Tensorflow

بدلاً من ذلك ، يجب تنزيل واستخدام ثنائيات Python متعددة المنصات المُعدة مسبقًا وتنزيل أي ملفات مصدر مطلوبة أثناء التنقل.

2. لا تحتاج إلى استنساخ أو تجريد كامل لـ C ++ أو JS من API

بدلاً من ذلك ، يجب أن يوفر واجهة كاملة 1 إلى 1 مع C API ، مما يوفر تجريدات JS مريحة قدر الإمكان.

3. لا الحفاظ على C API الارتباطات بواسطة اليد

بدلاً من ذلك ، يجب أن يستخدم برنامج نصي swig لتعيين هياكل البيانات الأساسية بين عقدة Tensorflow / stdc ++ / V8 / وسيتبع الباقي.


لقد حصلت على مسافة طويلة مع هذا ، لكنني أتذكر آخر مرة كان لدي مشاكل مع TF_Session ذات الصلة.

في الوقت الحالي ، إنه مجرد جمع الغبار ، لذلك إذا أراد شخص ما القفز والمساعدة في هذا الأمر ، فسأقبل بكل سرور العلاقات العامة.

إغلاق حيث تم حل هذا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات