كبشر، نشعر براحة أكبر عند النظر إلى الصور لفهمها بدلاً من محاولة تصور الهياكل المعقدة عقليًا مثل الشبكات العصبية العميقة. كما أنه من الملائم أكثر أن تقدم بصريًا وتشرح معماريتك الجديدة لجمهور أوسع وهو ليس “متمرسًا” في التكنولوجيا مثلك 🙂
مع أخذ ذلك في الاعتبار، اليوم، في هذه المقالة، أقوم بإدراج أفضل 25 اداة لرسم الشبكات العصبية والتي يمكنك استخدامها لمعرفة كيف تبدو معماريتك بصريًا. دون مزيد من اللغط، دعونا نبدأ.
1) Net2Vis: يقوم Net2Vis تلقائيًا بإنشاء تصورات مجردة للشبكات العصبية التلافيفية من كود Keras.
2)Visualkeras : visualkeras عبارة عن حزمة بايثون للمساعدة في رسم معماريات الشبكة العصبية Keras (إما مستقلة أو مضمنة في Tensorflow). يتيح التصميم السهل ليناسب معظم الاحتياجات. اعتبارًا من الآن، فهو يدعم إنشاء معمارية ذات طبقات، وهو أمر رائع بالنسبة لشبكات CNN (الشبكات العصبية التلافيفية Convolutional Neural Networks) وهندسة نمط Grap.
import visualkeras
model = ...
visualkeras.layered_view(model).show() # display using your system viewer
visualkeras.layered_view(model, to_file='output.png') # write to disk
visualkeras.layered_view(model, to_file='output.png').show() # write and show
visualkeras.layered_view(model)
3) draw_convnet: برنامج بايثون لتوضيح الشبكة العصبية التلافيفية (ConvNet):
4) NNSVG
5) PlotNeuralNet: كود Latex لرسم الشبكات العصبية للتقارير والعروض التقديمية. قم بإلقاء نظرة على الأمثلة لمعرفة كيفية صنعها. بالإضافة إلى ذلك، يتيح لك دمج أي تحسينات تجريها وإصلاح أي أخطاء لمساعدة المزيد من الأشخاص في استخدام هذا الكود.
6) Tensorboard: تعد لوحة معلومات الرسوم البيانية في TensorBoard أداة قوية لفحص نموذج TensorFlow الخاص بك.
7) Caffe : في Caffe، يمكنك استخدام caffe/draw.py لرسم NetParameter protobuffer:
8) Matlab
9) Keras.js
10) keras-sequential-ascii : مكتبة Keras لدراسة معماريات ومعلمات النماذج المتسلسلة.
معمارية VGG 16
OPERATION DATA DIMENSIONS WEIGHTS(N) WEIGHTS(%)
Input ##### 3 224 224
InputLayer | ------------------- 0 0.0%
##### 3 224 224
Convolution2D \|/ ------------------- 1792 0.0%
relu ##### 64 224 224
Convolution2D \|/ ------------------- 36928 0.0%
relu ##### 64 224 224
MaxPooling2D Y max ------------------- 0 0.0%
##### 64 112 112
Convolution2D \|/ ------------------- 73856 0.1%
relu ##### 128 112 112
Convolution2D \|/ ------------------- 147584 0.1%
relu ##### 128 112 112
MaxPooling2D Y max ------------------- 0 0.0%
##### 128 56 56
Convolution2D \|/ ------------------- 295168 0.2%
relu ##### 256 56 56
Convolution2D \|/ ------------------- 590080 0.4%
relu ##### 256 56 56
Convolution2D \|/ ------------------- 590080 0.4%
relu ##### 256 56 56
MaxPooling2D Y max ------------------- 0 0.0%
##### 256 28 28
Convolution2D \|/ ------------------- 1180160 0.9%
relu ##### 512 28 28
Convolution2D \|/ ------------------- 2359808 1.7%
relu ##### 512 28 28
Convolution2D \|/ ------------------- 2359808 1.7%
relu ##### 512 28 28
MaxPooling2D Y max ------------------- 0 0.0%
##### 512 14 14
Convolution2D \|/ ------------------- 2359808 1.7%
relu ##### 512 14 14
Convolution2D \|/ ------------------- 2359808 1.7%
relu ##### 512 14 14
Convolution2D \|/ ------------------- 2359808 1.7%
relu ##### 512 14 14
MaxPooling2D Y max ------------------- 0 0.0%
##### 512 7 7
Flatten ||||| ------------------- 0 0.0%
##### 25088
Dense XXXXX ------------------- 102764544 74.3%
relu ##### 4096
Dense XXXXX ------------------- 16781312 12.1%
relu ##### 4096
Dense XXXXX ------------------- 4097000 3.0%
softmax ##### 1000
11) Netron
12) DotNet
13) Graphviz: البرنامج التعليمي
14) Keras Visualization: توفر وحدة keras.utils.vis_utils دوال مفيدة لرسم نموذج Keras (باستخدام graphviz).
15) Conx : يمكن لحزمة conx من بايثون رسم الشبكات التي تحتوي على عمليات تنشيط باستخدام الدالة net.picture() لإنتاج صور SVG أو PNG أو PIL مثل هذا:
16) ENNUI : العمل على راسم الشبكة العصبية بالسحب والإفلات (والمزيد). فيما يلي مثال لرسم لمعمارية تشبه LeNet.
17) NNet : حزمة R – البرنامج التعليمي
data(infert, package="datasets")
plot(neuralnet(case~parity+induced+spontaneous, infert))
18) GraphCore : هذه الأساليب موجهة بشكل أكبر نحو تصور تشغيل الشبكة العصبية، ومع ذلك، فإن معمارية الشبكة العصبية تكون أيضًا مرئية إلى حد ما في المخططات الناتجة.
AlexNet
ResNet50
19) Neataptic: تقدم Neataptic شبكات عصبية مرنة؛ يمكن إزالة الخلايا العصبية والمشابك العصبية بسطر واحد من التعليمات البرمجية. ليست هناك حاجة إلى معمارية ثابتة لكي تعمل الشبكات العصبية على الإطلاق. تسمح هذه المرونة بتشكيل الشبكات لمجموعة البيانات الخاصة بك من خلال التطور العصبي، والذي يتم باستخدام خيوط متعددة.
20) TensorSpace: TensorSpace هو إطار رسم ثلاثي الأبعاد للشبكة العصبية تم إنشاؤه بواسطة TensorFlow.js وThree.js وTween.js. يوفر TensorSpace طبقات API لبناء طبقات التعلم العميق، وتحميل النماذج المدربة مسبقًا، وإنشاء تصور ثلاثي الأبعاد في المتصفح. من خلال تطبيق TensorSpace API، أصبح من السهل تصور وفهم أي نماذج تم تدريبها مسبقًا بواسطة TensorFlow وKeras وTensorFlow.js وما إلى ذلك.
22) Monial: التدوين التفاعلي للرسوم البيانية الحسابية (Interactive Notation for Computational Graphs) https://mlajtos.github.io/moniel/
23) Texample
24) Quiver
المصادر:
https://datascience.stackexchange.com/questions/2670/visualizing-deep-neural-network-training