Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

21-LEKCIYA_MDQI

.pdf
Скачиваний:
0
Добавлен:
18.10.2024
Размер:
220.61 Кб
Скачать

21-Lekciya. TensorBoard instrumentinen paydalanıw

Jobası:

1.TensorBoard haqqında ulıwma túsinik

2.TensorBoard-tıń tiykarǵı funkcionallıǵı

3.TensorBoard-tı iske túsiriw

4.Pythonda programmalastırıw

TensorBoard haqqında ulıwma túsinik: TensorBoard - bul TensorFlow ekosistemasınıń bir bólegi bolıp, mashina úyreniw modellerin vizualizaciya qılıw hám analiz qılıw ushın arnalǵan qural. Ol modeller ósiwi, ólshemler, grafikler hám basqa da kóp maǵlıwmatlardı kórsetiwge múmkinshilik beredi.

TensorBoard'tıń tiykarǵı funkcionallıǵı:

a)Úyretiw processi barısındaǵı metrikalardı vizualizaciya qılıw

b)Model arxitekturasın kórsetiw

c)Gistogrammalar hám tarqatılıwlardı kórsetiw

d)Vektorlardı vizualizaciya qılıw

e)Giperpametrlerdi salıstırıw

TensorBoard'tı ornatıw hám qosıw: TensorBoard'tı ornatıw ushın tómendegi komandanı qollanıw múmkin:

pip install tensorboard

TensorFlow hám Keras menen birge TensorBoard'tı qosıw: from tensorflow import keras

from tensorflow.keras.callbacks import TensorBoard import datetime

log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")

tensorboard_callback = TensorBoard(log_dir=log_dir, histogram_freq=1)

TensorBoard'tı model úyretiw waqtında qollanıw:

model.fit(x_train, y_train,

epochs=10,

validation_data=(x_test, y_test),

callbacks=[tensorboard_callback])

TensorBoard'tı iske túsiriw:

Terminal yamasa komanda qatarında tómendegi komandanı orınlaw kerek:

tensorboard --logdir=logs/fit

TensorBoard'tıń tiykarǵı bólimler: a) Scalar bólimi:

Bul bólimde úyretiw processi dawamında ózgerip baratırǵan metrikalar (mısalı, accuracy, loss) kórsetiledi.

b) Graphs bólimi:

Model arxitekturasın vizual túrde kórsetedi. c) Distributions hám Histograms bólimleri:

Model parametrleriniń tarqatılıwın hám ózgerisin kórsetedi. d) Images bólimi:

Eger modeliňiz súwretler menen islese, bul bólimde olardı kóriw múmkin. e) Projector bólimi:

Kóp ólshemli maǵlıwmatlardı 3D keńislikte vizualizaciya qılıw ushın qollanıladı.

TensorBoard instrumentinen paydalanıwdı kórsetiw ushın Python tilinde

ámeliy mısal keltiremiz. Bul mısalda biz qatań neyron tarmaǵın MNIST maǵlıwmatlar toplamı tiykarında úyretemiz hám TensorBoard járdeminde processtiń barısın baqlap baramız.

import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers import datetime

# MNIST maǵlıwmatlar toplamın júklew hám tayarlaw

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() x_train = x_train.reshape(-1, 28*28).astype("float32") / 255.0

x_test = x_test.reshape(-1, 28*28).astype("float32") / 255.0

# Model dúziw

model = keras.Sequential([

layers.Dense(128, activation='relu', input_shape=(784,)), layers.Dropout(0.2),

layers.Dense(64, activation='relu'), layers.Dropout(0.2),

layers.Dense(10, activation='softmax')

])

# Modeldi kompilyaciya qılıw model.compile(optimizer='adam',

loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# TensorBoard ushın log papkasın jaratıw

log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d- %H%M%S")

tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

# Modeldi úyretiw

history = model.fit(x_train, y_train, batch_size=32, epochs=10, validation_split=0.2,

callbacks=[tensorboard_callback])

# Modeldi bahalaw

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2) print(f"\nTest accuracy: {test_acc}")

Bul kodtı orınlaǵannan keyin, TensorBoard'tı iske túsiriw ushın terminal yamasa komanda qatarında tómendegi komandanı orınlaw kerek:

tensorboard --logdir=logs/fit

Bunnan keyin, ádette http://localhost:6006 adresinde TensorBoard interfeysi ashıladı.

Bul mısalda:

Dáslep, biz MNIST maǵlıwmatlar toplamın júkleymiz hám tayarlaymız.

Keyin, úsh qatlamlı qatań neyron tarmaǵın dúzemiz.

Modeldi kompilyaciya qılamız, bunda optimizer, loss funkciyas hám metrikalar belgilenedi.

TensorBoard ushın log papkasın jaratamız. Bunda hár bir úyretiw sessiyası ushın waqıt belgisi menen jańa papka jaratıladı.

model.fit() funkciyas arqalı modeldi úyretemiz. Bunda callbacks parametri arqalı TensorBoard callback funkciyas qosıladı.

Aqırında, test maǵlıwmatları tiykarında modeldi bahalap kóremiz. TensorBoard interfeysi arqalı siz tómendegi maǵlıwmatlardı kóre alasız:

Scalar bóliminde: úyretiw hám validaciya accuracy hám loss grafiklerın

Graphs bóliminde: model arxitekturasın

Distributions hám Histograms bólimlerinde: model parametrleriniń tarqatılıwın

Images bóliminde: eger siz qosımsha kod arqalı súwretlerdi saqlaǵan bolsańız, olardı kóriw múmkin

Projector bóliminde: joqarı ólshemli maǵlıwmatlardı 3D keńislikte vizualizaciya qılıw múmkin

Bul mısaldı keńeytip, qosımsha TensorBoard funkcionallıǵın qollanıw ushın tómendegi qosımsha kodlardı qosıwıńız múmkin:

Model arxitekturasın vizualizaciya qılıw:

tf.keras.utils.plot_model(model, to_file='model.png', show_shapes=True)

Tańlanǵan qatlamdaǵı aktivaciyalardı vizualizaciya qılıw:

class ActivationLogger(keras.callbacks.Callback): def __init__(self, layer_name):

self.layer_name = layer_name

def on_epoch_end(self, epoch, logs=None):

layer_output = self.model.get_layer(self.layer_name).output

activation_model = keras.Model(inputs=self.model.input, outputs=layer_output)

activations = activation_model.predict(x_test[:100])

file_writer = tf.summary.create_file_writer(f'{log_dir}/activations')

with file_writer.as_default():

tf.summary.histogram(f'{self.layer_name}_activations', data=activations, step=epoch)

activation_logger = ActivationLogger('dense')

Bul klassı callbacks diziminde model.fit() funkciasına qosıw kerek. Ózgeriwshilerdi qadaǵalaw:

def log_custom_scalar(epoch):

with tf.summary.create_file_writer(log_dir).as_default():

tf.summary.scalar('custom_metric', data=epoch,

step=epoch)

custom_callback = keras.callbacks.LambdaCallback(on_epoch_end=lambda epoch, logs: log_custom_scalar(epoch))

Bul callback funkciasın da model.fit() funkciasınıń callbacks diziminde qosıw kerek.

Súwretlerdi vizualizaciya qılıw:

def log_image(epoch):

img = x_test[0].reshape(28, 28) figure = plt.figure(figsize=(8, 8)) plt.imshow(img, cmap='gray')

buf = io.BytesIO() plt.savefig(buf, format='png') plt.close(figure)

buf.seek(0)

image = tf.image.decode_png(buf.getvalue(), channels=4) image = tf.expand_dims(image, 0)

with tf.summary.create_file_writer(f'{log_dir}/images').as_default():

tf.summary.image("Test image", image, step=epoch)

image_callback = keras.callbacks.LambdaCallback(on_epoch_end=lambda epoch, logs: log_image(epoch))

Bul callback funkciasın da model.fit() funkciyasınıń callbacks diziminde qosıw kerek. Bul qosımsha kodlar arqalı siz TensorBoard'tıń kóbirek funkcionallıǵınan paydalana alasız hám modelin islew processin tolıǵıraq túsiniwge járdem beredi.

Baqlaw sorawları:

1.TensorBoard degen ne hám ol qanday maqsette qollanıladı?

2.TensorBoard'tı qollanıw ushın qanday kitapxanalardı import qılıw kerek?

3.TensorBoard ushın log faylların qayerde saqlaw kerek hám onı kodta qalay kórsetiw múmkin?

4.TensorBoard'ta qanday tiykarǵı bólimler (tabs) bar hám olar qanday maǵlıwmatlardı kórsetedi?

5.TensorBoard'ta model arxitekturasın qalay vizualizaciya qılıw múmkin?

6.TensorBoard'ta úyreniwdiń barısında qanday metrikalar avtomatik túrde qadaǵalanadı?

7.TensorBoard'ta ózińizdiń qosımsha metrikalarıńızdı qalay qadaǵalaw múmkin?

8.TensorBoard'ta model parametrleriniń tarqalıwın qalay kóriw múmkin?

9.TensorBoard'ta súwretlerdi vizualizaciya qılıw ushın qanday qosımsha kodlar kerek?

10.TensorBoard'tı qollanıw arqalı modeldi optimizaciyalaw processinde qanday artıqmashılıqlarǵa iye bolasız?

Соседние файлы в предмете Программная инженерия