পাইথনে নিউরাল নেটওয়ার্ক আর্কিটেকচারগুলি কীভাবে ভিজ্যুয়ালাইজ করবেন

Jupyter বা Google Colab ব্যবহার করে আপনার নিউরাল নেটওয়ার্কের ডায়াগ্রামেটিক উপস্থাপনা তৈরি করার জন্য একটি দ্রুত নির্দেশিকা

ইমেজ ক্রেডিট — লেখক ভিজ্যুয়ালকেরা এবং জুপিটার নোটবুক ব্যবহার করে তৈরি করেছেন।

প্রায়শই কৃত্রিম নিউরাল নেটওয়ার্ক বা কনভোলিউশন নিউরাল নেটওয়ার্ক বা পুনরাবৃত্ত নিউরাল নেটওয়ার্কের মতো অন্যান্য বৈচিত্রগুলির সাথে কাজ করার সময়, আমরা আমাদের সংকলিত মডেলের একটি চিত্রগত উপস্থাপনা কল্পনা করতে এবং তৈরি করতে চাই। এটি দুটি উদ্দেশ্য সমাধান করতে পারে:

  1. একাধিক মডেল সংজ্ঞায়িত এবং প্রশিক্ষণের সময় আমাদের মডেলের গভীরতা কল্পনা করতে এবং বিভিন্ন স্তরের তুলনা করতে এবং কীভাবে সেগুলি ক্রমানুসারে স্থাপন করা হয় তা তুলনা করতে দেয়।
  2. মডেল গঠন, প্রতিটি স্তরে ব্যবহৃত অ্যাক্টিভেশন ফাংশন, প্রতিটি স্তরের আকৃতি (নিউরনের সংখ্যা) এবং পরামিতিগুলিকে প্রশিক্ষণের প্রয়োজন সম্পর্কে আরও ভাল বোঝার অনুমতি দেয়

পাইথনে সহজেই উপলব্ধ কয়েকটি প্যাকেজ রয়েছে যা আমাদের নিউরাল নেটওয়ার্ক মডেলগুলির একটি ভিজ্যুয়াল উপস্থাপনা তৈরি করতে পারে। প্রথম তিনটি প্যাকেজ একটি মডেল প্রশিক্ষিত হওয়ার আগেও ব্যবহার করা যেতে পারে (মডেলটি শুধুমাত্র সংজ্ঞায়িত এবং সংকলন করা প্রয়োজন); যাইহোক, টেনসর বোর্ড ব্যবহারকারীকে আর্কিটেকচারটি ভিজ্যুয়ালাইজ করার আগে মডেলটিকে সঠিক তথ্যের উপর প্রশিক্ষণ দিতে হবে।

  1. ANN ভিজ্যুয়ালাইজার
  2. ভিজ্যুয়াল কেরাস
  3. কেরাস মডেল প্লট
  4. টেনসর বোর্ড
পিপ ভিজ্যুয়ালকেরা ইনস্টল করুনপিপ ইনস্টল করুন ann_visualizerপিপ গ্রাফভিজ ইনস্টল করুন

আমাদের আলাদাভাবে "টেনসর বোর্ড" এবং "কেরাস মডেল প্লট" ইনস্টল করার দরকার নেই। এটি টেনসরফ্লো এবং কেরাসের প্রাথমিক ইনস্টলেশনের সাথে আসবে।

আমরা নীচে তালিকাভুক্ত কয়েকটি লাইব্রেরি ব্যবহার করতে পারি। বেশিরভাগ লাইব্রেরি একটি টেনসরফ্লো মডেলকে ডেটাতে স্পষ্টভাবে প্রশিক্ষণ না দিয়ে একটি ডায়াগ্রামে রূপান্তর করতে পারে। আপনি এটিকে সত্যের একক উত্স হিসাবে বিবেচনা করতে পারেন। কিছু লাইব্রেরি, যেমন Pandas, Skimage, এবং OpenCV, স্ট্রাকচার্ড ডেটা বা ছবি পড়ার সময় কাজে আসবে।

# প্রয়োজনীয় লাইব্রেরি আমদানি করুনপিডি হিসাবে পান্ডস আমদানি করুনimport numpy হিসাবে np # Import numpyস্কিমেজ ইম্পোর্ট ডেটা থেকে, io # স্কিমেজ লাইব্রেরি আমদানি করুন (ডেটা - টেস্ট ইমেজ এবং উদাহরণ ডেটা।# io - ছবি পড়া, সংরক্ষণ করা এবং প্রদর্শন করা।)skimage.color থেকে rgb2gray আমদানি করুনplt হিসাবে matplotlib.pyplot আমদানি করুন # matplotlib.pyplot আমদানি করুন (পাইথনে প্লটিং কাঠামো।)%matplotlib ইনলাইনimport os # এই মডিউলটি অপারেটিং সিস্টেম নির্ভর কার্যকারিতা ব্যবহার করার একটি পোর্টেবল উপায় প্রদান করে।os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'আমদানি সতর্কতা# সতর্কবার্তা দমন করুনwarnings.filterwarnings('উপেক্ষা')IPython.display থেকে আমদানি প্রদর্শনcv হিসাবে cv2 আমদানি করুন
sklearn.metrics থেকে confusion_matrix আমদানি করুন
sklearn.model_selection আমদানি ট্রেন_েস্ট_স্প্লিট থেকেtensorflow.keras আমদানি ইউটিলস থেকেtensorflow.keras.models থেকে অনুক্রমিক, load_model আমদানি করুনtensorflow.keras.layers থেকে ঘন, ড্রপআউট, সমতল, Conv2D, MaxPool2D, ব্যাচ স্বাভাবিককরণ আমদানি করুনtensorflow.keras.optimizers থেকে অ্যাডাম আমদানি করেtf হিসাবে tensorflow আমদানি করুনsns হিসাবে seaborn আমদানি করুন

স্ক্র্যাচ থেকে ANN এবং CNN এর আশেপাশে আরও কন্টেন্ট অন্বেষণ করার জন্য কিছু সহায়ক লিঙ্ক।

আমরা বিভিন্ন হাইপারপ্যারামিটার সহ তিনটি ভিন্ন CNN মডেল সংজ্ঞায়িত করব। আদর্শভাবে, বাস্তব জগতে, আমরা একটি মাল্টি-ক্যাটাগরির শ্রেণীবিভাগের টাস্কের জন্য মডেল তৈরি করছি তা বিবেচনা করে নির্ভুলতা বা যেকোনো প্রাসঙ্গিক মেট্রিক্স বাড়ানোর জন্য বিভিন্ন আর্কিটেকচার বাস্তবায়নের লক্ষ্য রাখি। ভিজ্যুয়ালাইজেশন প্যাকেজগুলি কীভাবে ব্যবহার করা যায় তার উপর আমাদের সমস্যার প্রকারের পছন্দ কোন প্রভাব ফেলবে না।

আমরা আলাদা আলাদা সংখ্যক CNN স্তর, সর্বোচ্চ-পুলিং এবং ঘন স্তর সহ তিনটি ভিন্ন মডেল তৈরি করতে ব্যবহারকারী-সংজ্ঞায়িত ফাংশন তৈরি করেছি।

4.1 – আর্কিটেকচার 1 — অগভীর CNN স্তর + ANN স্তর

def construct_model():মডেল = অনুক্রমিক()model.add(Conv2D(filters=64, kernel_size=(3, 3), input_shape=(128, 128, 1), activation='relu'))model.add(Conv2D(filters=64, kernel_size=(3, 3), activation='relu'))model.add(MaxPool2D((2, 2)))model.add (সমতল ())model.add(Dense(256, activation='relu'))model.add(Dense(12, activation='softmax'))model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])রিটার্ন মডেল

4.2 — আর্কিটেকচার 2 — গভীর CNN + অগভীর ANN স্তর

def sconstruct_model():মডেল = অনুক্রমিক()smodel.add(Conv2D(filters=64, kernel_size=(3, 3), input_shape=(128, 128, 3), activation='relu'))smodel.add(Conv2D(filters=64, kernel_size=(3, 3), activation='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation='relu'))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation='relu'))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Flatten())smodel.add(Dense(256, activation='relu'))smodel.add(Dense(12, activation='softmax'))#অপ্টিমাইজার = অ্যাডাম(lr=0.001)smodel.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])#model.summary()ফিরে আসা মডেল

4.3 — আর্কিটেকচার 3 — গভীর CNN এবং ANN স্তরগুলি

def cconstruct_model(লার্নিং রেট):মডেল = অনুক্রমিক()smodel.add(Conv2D(filters=32, kernel_size=(3, 3), input_shape=(128, 128, 1), activation='relu'))smodel.add(Conv2D(filters=32, kernel_size=(3, 3), activation='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=64, kernel_size=(3, 3), activation='relu'))smodel.add(Conv2D(filters=64, kernel_size=(3, 3), activation='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation='relu'))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation='relu'))smodel.add(MaxPool2D((2, 2)))smodel.add(Flatten())smodel.add(Dense(256, activation='relu'))smodel.add(Dense(256, activation='relu'))smodel.add(Dense(12, activation='softmax'))অপ্টিমাইজার = অ্যাডাম(lr=learning Rate)smodel.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])smodel.summary()ফিরে আসা মডেলমডেল=cconstruct_model(0.001)

ANN ভিজ্যুয়ালাইজার নামের একটি পাইথন মডিউল কয়েকটি লাইনের কোড সহ একটি কৃত্রিম নিউরাল নেটওয়ার্ককে কল্পনা করা সম্ভব করে তোলে (Gheorghiu, 2022)। এটি একটি পরিপাটি এবং আকর্ষণীয় নিউরাল নেটওয়ার্ক গ্রাফ তৈরি করতে কেরাস এবং পাইথনের গ্রাফভিজ মডিউল ব্যবহার করে। আপনার সম্পূর্ণ ডিপ লার্নিং নেটওয়ার্ক বা শুধুমাত্র কনভোলিউশনাল নিউরাল নেটওয়ার্ক যা আপনি গভীর শিক্ষার অগ্রগতি দ্বারা চালিত করেছেন তা কল্পনা করার নমনীয়তা রয়েছে (শাহ, 2018)।

আপনার নিউরাল নেটওয়ার্কের একটি পিডিএফ উপস্থাপনা তৈরি করতে নীচের কাঠামোটি ব্যবহার করুন। যাইহোক, তার আগে, আমাদের উপরের মডেলগুলি কম্পাইল করতে হবে।

মডেল=নির্মাণ_মডেল()

ann_viz(মডেল, view=True, filename="network.gv", title="MyNeural Network")

  • মডেল - কেরাস থেকে অনুক্রমিক মডেল
  • দেখুন - ann_viz() কল করার পরে গ্রাফটি কল্পনা করুন
  • ফাইলের নাম - ফাইলের নাম
  • শিরোনাম - গ্রাফ বোঝানোর জন্য কোনো নির্দিষ্ট শিরোনাম
ann_visualizer.visualize import ann_viz থেকেann_viz(মডেল, ভিউ=ট্রু, ফাইলের নাম=”cconstruct_model”, title=”CNN — মডেল 1 — সাধারণ আর্কিটেকচার”)
চিত্র 1: ANN ভিজুয়ালাইজার ব্যবহার করে তৈরি করা কনস্ট্রাকট_মডেল() এর স্ন্যাপশট। ক্রেডিট — জুপিটার নোটবুক ব্যবহার করে লেখক দ্বারা তৈরি করা ছবি। মূল আউটপুটটি এখানে একটি চিত্র হিসাবে ফিট করার জন্য খুব বড়, তাই নীচের স্তরগুলির একটি স্ন্যাপ শট এখানে ব্যবহার করা হয়েছে।

ভিজুয়ালকেরাস নামক একটি পাইথন টুল কেরাস নিউরাল নেটওয়ার্ক ডিজাইন (হয় আলাদাভাবে বা টেনসরফ্লো-এর অংশ হিসাবে) দেখতে সহজ করে তোলে। স্টাইলিং চাহিদার অধিকাংশ সহজে পূরণ করা যেতে পারে. কনভোল্যুশনাল নিউরাল নেটওয়ার্ক (CNNs) স্তরযুক্ত-শৈলী স্থাপত্য বিকাশ থেকে উল্লেখযোগ্যভাবে উপকৃত হয়। সাধারণ ফিড-ফরোয়ার্ড নেটওয়ার্ক সহ বেশিরভাগ মডেল, গ্রাফ-স্টাইলের স্থাপত্যের প্রজন্ম থেকে ব্যাপকভাবে উপকৃত হয়, যা এই মডিউলটি সমর্থন করে (Gavrikov, 2022)।

মডেল1=নির্মাণ_মডেল()মডেল2=sconstruct_model()মডেল3=cconstruct_model(0.009)ভিজ্যুয়ালকেরা আমদানি করুনপিআইএল আমদানি ইমেজফন্ট থেকেvisualkeras.layered_view(model1, legend=True)visualkeras.layered_view(model2, legend=True)visualkeras.layered_view(model3, legend=True)
চিত্র 2. তিনটি ভিন্ন মডেল আর্কিটেকচারের একটি ডায়াগ্রামেটিক উপস্থাপনা চিত্রিত করে। ক্রেডিট — জুপিটার নোটবুক ব্যবহার করে লেখক দ্বারা তৈরি করা ছবি।

সার্জারির keras.utils.plot_model Graphviz এবং pydot প্যাকেজ ব্যবহার করে কেরাসের মাধ্যমে সংজ্ঞায়িত এবং সংকলিত মডেল প্লট করার জন্য অন্তর্নির্মিত ফাংশন প্রদান করে। গ্রাফিকভাবে এটি উপরে ব্যবহৃত প্যাকেজগুলির তুলনায় কম স্বজ্ঞাত, তবে এটি একটি অনুক্রমিক মডেলের মৌলিক আর্কিটেকচারের রূপরেখা দেয় (টিম, এনডি)।

tf.keras.utils.plot_model(মডেল1,to_file="model.png",show_shapes=সত্য,show_dtype = মিথ্যা,show_layer_names=True,rankdir="TB",expand_nested=সত্য,dpi=96,layer_range=কোনটিই নয়,show_layer_activations=সত্য,)

বিবেচনা করার জন্য কয়েকটি হাইপারপ্যারামিটার:

  1. মডেল: কেরাস সংকলিত মডেল বা মডেল অবজেক্টের একটি উদাহরণ
  2. নথিতে: ছবির ফাইলের নাম
  3. প্রদর্শন_আকৃতি: নিউরাল নেটওয়ার্কে প্রতিটি স্তরের মাত্রা এবং আকৃতি প্রদর্শন করে
  4. show_layer_activation: নিউরনের মধ্যে ব্যবহৃত অ্যাক্টিভেশন ফাংশন প্রদর্শন করে
চিত্র 3. tf.keras.utils.plot_model() এর আউটপুট চিত্রিত করে। ক্রেডিট — জুপিটার নোটবুক ব্যবহার করে লেখক দ্বারা তৈরি করা ছবি।

TensorBoard হল একটি ড্যাশবোর্ড ইন্টারফেস যা ব্যবহারকারীদের বিভিন্ন মডেলের রান জুড়ে লগ কল্পনা করতে দেয়। লগগুলি যেকোন মডেলের বৈধতা পরিমাপ যেমন নির্ভুলতা, রিকল, RMSE, MAPE, এবং MSE বিভিন্ন যুগে ট্র্যাক করা থেকে শুরু করে মডেলের স্থাপত্যের একটি ধারণাগত গ্রাফ তৈরি করা পর্যন্ত হতে পারে। একটি অপ-লেভেল গ্রাফ ব্যবহার করে কীভাবে একটি মডেল পরিবর্তন করা যেতে পারে তার অন্তর্দৃষ্টি চালানোর সময় অভিপ্রেত মডেলটি প্রত্যাশিত নকশার সাথে মেলে কিনা তা কল্পনা করার জন্য এটি একটি শক্তিশালী টুল।

এই কার্যকারিতা ব্যবহার করার জন্য আমাদের প্রথমে টেনসরবোর্ড লোড করতে হবে এবং তারপরে একটি লগ ডিরেক্টরি তৈরি করতে হবে।

%load_ext টেনসরবোর্ডতারিখ সময় আমদানি তারিখ সময় থেকেtensorflow আমদানি keras থেকে# কেরাস টেনসরবোর্ড কলব্যাক সংজ্ঞায়িত করুন।logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S")tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)

কেরাস টেনসরবোর্ড কলব্যাক তৈরি করুন এবং প্রশিক্ষণের আগে লগ ডিরেক্টরি নির্দিষ্ট করুন। মডেল.fit() এ কলব্যাক সরবরাহ করে আপনি নিশ্চিত করতে পারেন যে TensorBoard ভিজ্যুয়ালাইজেশনের জন্য গ্রাফ ডেটা লগ করা হয়েছে। একবার আপনি TensorBoard চালু করলে, এটি লোড হতে কয়েক মিনিট সময় লাগতে পারে।

model.fit(X2_ট্রেন, Y2_ট্রেন,ব্যাচ_সাইজ=64,যুগ = 5,কলব্যাক=[টেনসরবোর্ড_কলব্যাক])

দ্রষ্টব্য: X2_train এবং Y2_train হল প্রশিক্ষণ ডেটাসেট যা উপরের কোডগুলিতে প্রতিফলিত হয় না। আপনি এটিকে আপনার নিজের যেকোনো প্রশিক্ষণের ডেটা দিয়ে প্রতিস্থাপন করতে পারেন।

TensorBoard সর্বদা ডিফল্টরূপে অপ-লেভেল গ্রাফ দেখায়। ("ডিফল্ট" ট্যাগটি বাম দিকে হাইলাইট করা হয়েছে৷) কোডের তুলনায় গ্রাফটি উল্টোদিকে কারণ ডেটা নীচে থেকে উপরে প্রবাহিত হয়৷ কিন্তু আপনি দেখতে পাচ্ছেন, গ্রাফটি মোটামুটি কেরাস মডেলের বর্ণনার সাথে সাদৃশ্যপূর্ণ, অতিরিক্ত প্রান্তগুলি অন্যান্য গণনা নোডের দিকে নিয়ে যায় (টেনসরফ্লো, 2022)।

চিত্র 4. টেনসরবোর্ডের আউটপুট চিত্রিত করে। ক্রেডিট — জুপিটার নোটবুক ব্যবহার করে লেখক দ্বারা তৈরি করা ছবি।

TensorBoard কিভাবে ব্যবহার করতে হয় সে সম্পর্কে আরও প্রসঙ্গ রেফারেন্সের অধীনে পাওয়া যাবে।

একটি বাণিজ্যিক দৃষ্টিকোণ থেকে, যেখানে একজন ব্যবহারকারীকে স্টেকহোল্ডারদের একটি গ্রুপের কাছে তাদের বিশ্লেষণ উপস্থাপন করতে হয়, এই চিত্রগুলি আলোচনায় আরও জটিলতা যোগ করে। তারা একটি চরম মূল্য সংযোজন হতে পারে না. যাইহোক, একটি একাডেমিক এবং শেখার দৃষ্টিকোণ থেকে, এই প্যাকেজগুলিকে এই গভীর শিক্ষার আর্কিটেকচারগুলি প্রদর্শন করার জন্য ব্যবহার করার যোগ্যতা রয়েছে। ANN ভিজ্যুয়ালাইজার, আমার কাছে, বাকিদের চেয়ে আলাদা কারণ এটি ডায়াগ্রামটি হজম করা সহজ, যেখানে টেনসরবোর্ডের গ্রাফ আউটপুট ফলাফলগুলি গ্রহণ করার আগে আরও প্রযুক্তিগততার প্রয়োজন।

Gavrikov, P. (2022, এপ্রিল 13)। কেরাস / টেনসরফ্লো এর জন্য ভিজ্যুয়ালকেরা. গিটহাব। https://github.com/paulgavrikov/visualkeras

ঘিওরগিউ, টি. (2022, অক্টোবর 21)। ANN ভিজ্যুয়ালাইজার. গিটহাব। https://github.com/RedaOps/ann-visualizer

শাহ, এ. (2018, এপ্রিল 28)। মাত্র এক লাইনের কোড সহ কৃত্রিম নিউরাল নেটওয়ার্ক (ANNs) ভিজ্যুয়ালাইজ করা. মধ্যম. https://towardsdatascience.com/visualizing-artificial-neural-networks-anns-with-just-one-line-of-code-b4233607209e

স্ট্যাক ওভারফ্লো। (nd)। মেশিন লার্নিং — আপনি কীভাবে নিউরাল নেটওয়ার্ক আর্কিটেকচারগুলিকে কল্পনা করবেন? ডেটা সায়েন্স স্ট্যাক এক্সচেঞ্জ। সংগৃহীত অক্টোবর 29, 2022, থেকে https://datascience.stackexchange.com/questions/12851/how-do-you-visualize-neural-network-architectures

দল, কে. (এনডি)। কেরাস ডকুমেন্টেশন: মডেল প্লটিং ইউটিলিটি. Keras.io. সংগৃহীত অক্টোবর 29, 2022, থেকে https://keras.io/api/utils/model_plotting_utils/#modeltodot-function

টেনসরফ্লো। (2022, জানুয়ারি 6)। টেনসরফ্লো গ্রাফ পরীক্ষা করা হচ্ছে | টেনসরবোর্ড. টেনসরফ্লো। https://www.tensorflow.org/tensorboard/graphs

সোর্স https://towardsdatascience.com/how-to-visualize-neural-network-architectures-in-python-567cd2aa6d62?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/how-to-visualize-neural-network-architectures-in-এ পাইথনে নিউরাল নেটওয়ার্ক আর্কিটেকচার কিভাবে ভিজ্যুয়ালাইজ করবেন wardatascience.com/feed

<!–

->

সময় স্ট্যাম্প:

থেকে আরো ব্লকচেইন পরামর্শদাতা