
21-LEKCIYA_MDQI
.pdf
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?