ساخت شماتیک شبکه عصبی با پایتون
اگر شما هم در حوزهی شبکههای عصبی و cnn کار میکنید احتمالا نیاز خواهید داشت تا در مورد کارهای خود یک ارائه یا یک داکیومنت ایجاد کنید و برای اینکه از شبکه عصبی خودتان و اندازهی لایهها شماتیکی رسم کنید نیاز دارید از مراحل گفته شده در این آموزش استفاده کنید.
ساخت شماتیک شبکه عصبی با پایتون
برای ساخت یک شماتیک از شبکه عصبی خود شما نیاز به پکیج visualkeras دارید. برای نصب این پکیج از دستور زیر استفاده کنید:
pip install visualkeras
حالا کافیست متغیر model خود را به تابع زیر بدهید تا برای شما شماتیک شبکهی شما را رسم کند:
import visualkeras visualkeras.layered_view(model, to_file='output.png').show()
برای مثال:
from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense, Flatten, Conv2D, Dropout, MaxPooling2D, InputLayer, ZeroPadding2D from collections import defaultdict import visualkeras from PIL import ImageFont # create VGG16 image_size = 224 model = Sequential() model.add(InputLayer(input_shape=(image_size, image_size, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(64, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(64, activation='relu', kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(MaxPooling2D((2, 2), strides=(2, 2))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(128, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(128, activation='relu', kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(MaxPooling2D((2, 2), strides=(2, 2))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(256, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(256, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(256, activation='relu', kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(MaxPooling2D((2, 2), strides=(2, 2))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(512, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(512, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(512, activation='relu', kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(MaxPooling2D((2, 2), strides=(2, 2))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(512, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(512, activation='relu', kernel_size=(3, 3))) model.add(ZeroPadding2D((1, 1))) model.add(Conv2D(512, activation='relu', kernel_size=(3, 3))) model.add(MaxPooling2D()) model.add(visualkeras.SpacingDummyLayer()) model.add(Flatten()) model.add(Dense(4096, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(4096, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(1000, activation='softmax')) # Now visualize the model! color_map = defaultdict(dict) color_map[Conv2D]['fill'] = 'orange' color_map[ZeroPadding2D]['fill'] = 'gray' color_map[Dropout]['fill'] = 'pink' color_map[MaxPooling2D]['fill'] = 'red' color_map[Dense]['fill'] = 'green' color_map[Flatten]['fill'] = 'teal' font = ImageFont.truetype("arial.ttf", 32) visualkeras.layered_view(model, to_file='../figures/vgg16.png', type_ignore=[visualkeras.SpacingDummyLayer]) visualkeras.layered_view(model, to_file='../figures/vgg16_legend.png', type_ignore=[visualkeras.SpacingDummyLayer], legend=True, font=font) visualkeras.layered_view(model, to_file='../figures/vgg16_spacing_layers.png', spacing=0) visualkeras.layered_view(model, to_file='../figures/vgg16_type_ignore.png', type_ignore=[ZeroPadding2D, Dropout, Flatten, visualkeras.SpacingDummyLayer]) visualkeras.layered_view(model, to_file='../figures/vgg16_color_map.png', color_map=color_map, type_ignore=[visualkeras.SpacingDummyLayer]) visualkeras.layered_view(model, to_file='../figures/vgg16_flat.png', draw_volume=False, type_ignore=[visualkeras.SpacingDummyLayer]) visualkeras.layered_view(model, to_file='../figures/vgg16_scaling.png', scale_xy=1, scale_z=1, max_z=1000, type_ignore=[visualkeras.SpacingDummyLayer])
خروجی:
برای مشاهده نمونه کدهای بیشتر به مخزن گیتهاب پروژه بروید. کدهای بالا به زبان برنامه نویسی پایتون است.
اگر مشکلی با این آموزش دارید در بخش نظرات این نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]
ارسال پاسخ