ساخت شماتیک شبکه عصبی با پایتون
اگر شما هم در حوزه ی شبکه های عصبی و 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])
خروجی:
برای مشاهده نمونه کدهای بیشتر به مخزن گیت هاب پروژه بروید.کدهای بالا به زبان برنامه نویسی پایتون می باشد.
اگر مشکلی با این آموزش دارید در بخش نظرات این نوشته برای ما بنویسید.
موفق باشید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]
ارسال پاسخ