Սովորեք պատկերացնել չափումները, գրաֆիկները, կշիռների հիստոգրամը և կողմնակալությունները Tensorflow մոդելների համար՝ օգտագործելով TensorBoard

Այս հոդվածում դուք կսովորեք օգտագործել TensorBoard-ը՝ տարբեր դարաշրջանների կշիռների, գծապատկերների, պատկերների և հիստոգրամների ցուցադրման համար՝ TensorFlow-ում ստեղծված խորը ուսուցման մոդելի համար, ինչպես նաև ընդհանուր խնդիրներ, որոնց կարող եք հանդիպել TensorBoard-ի հետ: em>

Ի՞նչ է TensorBoard-ը

TensorBoard-ը տեսողականացման գործիքակազմ է Tensorflow-ից՝ ցուցադրելու տարբեր չափումներ, պարամետրեր և այլ պատկերացումներ, որոնք օգնում են վրիպազերծել, հետևել, ճշգրտել, օպտիմալացնել և կիսել ձեր խորը ուսուցման փորձի արդյունքները:

Որո՞նք են այն տարբեր բաները, որոնց կարելի է հետևել TensorBoard-ի միջոցով:

TensorBoard-ը թույլ է տալիս հետևել

  • Չափանիշներ. կորուստն ու ճշգրտությունը փոխվում են ամեն դարաշրջանում: Վերապատրաստման ցիկլի ընթացքում կորստի և ճշգրտության հետևելը կօգնի ձեզ հասկանալ, թե արդյոք մոդելը չափազանց հարմար է:
  • Մոդելների գրաֆիկներ. պատկերացրեք խորը ուսուցման մոդելները՝ իմանալու համար, թե արդյոք դրանք ճիշտ են կառուցված
  • Բաշխման հիստոգրամներ. պատկերացրեք կշիռների և շեղումների հիստոգրամներըդարաշրջանների ընթացքում
  • Պատկերներ. պատկերացրեք կամայական պատկերներ ձեր տվյալների հավաքածուի համար TensorBoard-ում

Ինչո՞ւ պետք է օգտագործեք TensorBoard-ը:

Դուք մշակում եք պատկերների դասակարգման խորը նեյրոնային ցանց և կցանկանայիք ունենալ ավելի քան 98% ճշգրտություն:

Ցանկանում եքհետևել մոդելի ճշգրտությանը և կորստին յուրաքանչյուր դարաշրջանում; նաև դուք կցանկանայիք հետևել և պրոֆիլավորել ձեր մոդելի ճշգրտությունը և կորուստը տարբեր հիպերպարամետրերի արժեքներով, ինչպիսիք են ուսուցման արագությունը, օպտիմիզատորները, դուրս գալը և այլն: Հետևման ճշգրտությունը տարբեր արժեքների համար հիպերպարամետրը կօգնի ձեզ ճշգրտել մոդելը:

Խորը ուսուցման մոդելները հաշվողականորեն թանկ են, և մեր փորձերի արդյունքները հիպերպարամետրերի տարբեր արժեքներով պատկերացնելը և մի քանի դարաշրջանների ընթացքում ճշգրտությունն ու կորուստը հետևելը կօգնի արագ կարգավորել մոդելը:

Դուք կարող եք հետևել մոդելների ճշգրտությանը և կորստին, որը հիմնված է տվյալների հոսքի տարբեր գրաֆիկների վրա՝ թաքնված շերտերի համարների տարբեր թվերով և թաքնված շերտերում միավորների քանակով:

TensorBoard-ն օգնում է պատկերացնել թենզորների հոսքը մոդելում՝ վրիպազերծման և օպտիմալացման համար՝ հետևելով ճշգրտությանը և կորուստներին:

TensorBoard-ը պատկերացնում է հաշվողական գրաֆիկները, ուսուցման պարամետրերը, չափումները և հիպերպարամետրերը, որոնք կօգնեն հետևել ձեր մոդելի փորձարարական արդյունքներին և ավելի արագ կարգավորել մոդելը:

TensorBoard.dev-ի միջոցով դուք կարող եք հյուրընկալել ձեր խորը ուսուցման մոդելի փորձի արդյունքները և կիսվել այն ձեր թիմի հետ: Յուրաքանչյուր ոք կարող է դիտել տվյալները հղումով, այնպես որ ՄԻ ՎԵՐԲԵՐՆԵՔ ԶԳԱՅՈՒՆ ՏՎՅԱԼՆԵՐԸ:

Ինչպե՞ս օգտագործել TensorBoard-ը:

Մենք կպատկերացնենք սկալերը, գրաֆիկները և բաշխումը TensorBoard-ի միջոցով՝ օգտագործելով կատուների և շների տվյալների բազան:

Պահանջվող գրադարանների ներմուծում

import tensorflow as tf
import datetime
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D
from tensorflow.keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img

Ես օգտագործել եմ TensorFlow 2.0.0 տարբերակը:

Բեռնել TensorBoard նոթատետրի ընդլայնումը

# Load the TensorBoard notebook extension
%load_ext tensorboard

Ստեղծեք պատկերների դասակարգման խորը ուսուցման մոդելը

Դասընթացի հիմնական պարամետրերի կարգավորում

BASE_PATH = 'Data\\dogs-vs-cats\\train\\'
TRAIN_PATH='Data\\dogs-vs-cats\\train_data\\'
VAL_PATH='Data\\dogs-vs-cats\\validation_data\\'batch_size = 32 
epochs = 60
IMG_HEIGHT = 150
IMG_WIDTH = 150

Վերաչափեք և կիրառեք տարբեր մեծացումներ մարզման պատկերի վրա

train_image_generator = ImageDataGenerator(                                                rescale=1./255,                                              rotation_range=45,                                                width_shift_range=.15,                                                height_shift_range=.15,                                                horizontal_flip=True,                                                zoom_range=0.3)

Վավերացման տվյալների վերագնահատում

validation_image_generator = ImageDataGenerator(rescale=1./255)

Ստեղծեք նորմալացված տվյալների խմբաքանակներ գնացքի և վավերացման տվյալների հավաքածուի համար

train_data_gen = train_image_generator.flow_from_directory(batch_size = batch_size,                                                     directory=TRAIN_PATH,                                                     shuffle=True,                                                     target_size=(IMG_HEIGHT, IMG_WIDTH),                                                     class_mode='categorical')val_data_gen = validation_image_generator.flow_from_directory(batch_size = batch_size,                                                              directory=VAL_PATH,                                                              target_size=(IMG_HEIGHT, IMG_WIDTH),                                                              class_mode='categorical')

Ստեղծեք և կազմեք մոդելը

def create_model():
    model = Sequential([
    Conv2D(16, 3, padding='same', activation='relu', 
           input_shape=(IMG_HEIGHT, IMG_WIDTH ,3)),
    MaxPooling2D(),
    Dropout(0.2),
    Conv2D(32, 3, padding='same', activation='relu'),
    MaxPooling2D(),
    Conv2D(64, 3, padding='same', activation='relu'),
    MaxPooling2D(),
    Conv2D(128, 3, padding='same', activation='relu'),
    MaxPooling2D(),
    Dropout(0.2),
    Flatten(),
    Dense(512, activation='relu'),
    Dense(2, activation='softmax')])
    return model
# Create and Compile the model
model= create_model()
model.compile(optimizer='adam',                 loss='categorical_crossentropy', 
metrics=['accuracy'])

Օգտագործելով TensorBoard մոդելը հարմարեցնելու համար

Կորուստն ու ճշգրտությունը, մոդելային գրաֆիկները և կշիռների և կողմնակալությունների հիստոգրամները պատկերացնելու համար դուք պետք է ստեղծեք տեղեկամատյանները և պահեք մանրամասները: Այս տեղեկամատյանների ֆայլերը կօգտագործվեն TensorBoard-ի կողմից՝ մանրամասները պատկերացնելու համար:

Մատյան ֆայլեր ստեղծելու համար մոդելը տեղադրելու ժամանակ օգտագործեք tf.keras.callbacks.TensorBoard:

log_dir=r'\Tensorboard_ex\logs_1\fit\' + datetime.datetime.now().strftime('%Y%m%d-%H%M%S')
tensorboard_callback= tf.keras.callbacks.TensorBoard(log_dir=log_dir,                     
                               histogram_freq=1)

Յուրաքանչյուր շերտի և յուրաքանչյուր դարաշրջանի համար կշիռների և շեղումների հիստոգրամային հաշվարկը միացնելու համար մենք դրեցինք histogram_freq=1քանի որ այն անջատված է լռելյայնորեն:

Համապատասխանեցրեք մոդելին

model.fit_generator(
    train_data_gen,
    steps_per_epoch=1000,
    epochs=epochs,
    validation_data=val_data_gen,
    validation_steps=1000,
    callbacks=[tensorboard_callback]
)

Tensorboard Dashboard-ի պատկերացում

Դուք կարող եք դիտել TensorBoard-ի վահանակը՝ օգտագործելով Jupyter նոթատետրում գտնվող տարբեր հրամաններ

%tensorboard --logdir="\TEnsorBoard_ex\logs_1\fit"

or

%tensorboard — logdir log_dir

Or

սկսել TensorBoard-ը՝ նշելով այն գրացուցակը, որտեղ պահվում են իրադարձությունների տեղեկամատյանները: Այս իրադարձությունների տեղեկամատյանները ստեղծվում են այն ժամանակ, երբ մենք տեղադրում էինք մոդելը:

python -m tensorboard.main — logdir=”TensorBoard_ex\logs_1\fit”

Chrome-ում մուտքագրեք http://localhost:6006/ հասցեի տողում և այժմ կարող եք տեսնել Tensorboard-ը:

Սկալային տեղեկատվություն, որը պարունակում է ուսուցման և վավերացման ճշգրտություն և կորուստ 20 դարաշրջանի տվյալների բազա

Պատկերների դասակարգման մոդելի գրաֆիկով TensorBoard-ը ցույց է տալիս, արդյոք մոդելը ճիշտ է կառուցվել

դուք կարող եք նաև դիտել ոչ սկալային տենսորների բաշխումը բազմակի կրկնությունների վրա

Հիստոգրամները ցույց են տալիս միևնույն տենզորային ոչ սկալյար թենզոր փոփոխականը բազմաթիվ կրկնությունների ընթացքում, բայց որպես եռաչափ հիստոգրամ

TensorBoard-ի հետ կապված ընդհանուր խնդիրներ

Ընթացիկ տվյալների բազայի համար վահանակներ ակտիվ չեն

Սպանեք Tensorboard-ի բոլոր ընթացիկ առաջադրանքները: Մուտքագրեք հետևյալ հրամանները ձեր հրամանի տողում

taskkill /im tensorboard.exe /f
del /q %TMP%\.tensorboard-info\*

Այժմ սկսեք TensorBoard-ը` նշելով այն գրացուցակը, որտեղ պահվում են իրադարձությունների տեղեկամատյանները: Այս իրադարձությունների տեղեկամատյանները ստեղծվում են այն ժամանակ, երբ մենք տեղադրում էինք մոդելը:

python -m tensorboard.main — logdir=”TensorBoard_ex\logs_1\fit”

Երբեմն դուք կարող եք ստիպված լինել մի քանի անգամ փորձել այս հայտարարությունները՝ Tensorboard-ի վահանակը դիտելու համար:

Եզրակացություն:

TensorBoard-ի վիզուալիզացիան մոդելի տարբեր տարրերի համար հեշտացնում է վրիպազերծումը և օպտիմիզացումը խորը ուսուցման մոդելի փորձարկումների համար՝ ավելի լավ ճշգրտության համար:

Ի՞նչ է հաջորդը:

Հաջորդ հոդվածում դուք կսովորեք կարգավորել խորը ուսուցման մոդելները՝ օգտագործելով Hyperparameter tuning suing TensorBoard-ը:

Հղումներ և ոգեշնչում.





TensorBoard-ը Jupyter-ում «localhost-ը մերժել է միանալ խնդիրը Windows-ում · Թողարկում #2481 ·…
Disiss GitHub-ը տունն է ավելի քան 50 միլիոն ծրագրավորողների, որոնք միասին աշխատում են հյուրընկալելու և վերանայելու կոդը, կառավարել նախագծերը և…github.com»