Conversation with Merlin [email protected] · Fri Dec 15 2023

import pathlib import numpy as np import matplotlib.pyplot as plt

import tensorflow as tf import tensorflow_datasets as tfds tfds.disable_progress_bar()

print('\u2022 Используется TensorFlow версии ', tf.version) print('\u2022 Обнаружен GPU.' if tf.test.is_gpu_available() else '\u2022 GPU не обнаружен. Запущено на CPU') splits, info = tfds.load('fashion_mnist', with_info=True, as_supervised=True, split=['train[0%:90%]','train[90%:100%]','test'])

(train_examples, validation_examples, test_examples) = splits

num_examples = info.splits['train'].num_examples num_classes = info.features['label'].num_classes class_names = ['Футболка/топ', 'Брюки', 'Пуловер', 'Платье', 'Пальто', 'Сандалия', 'Рубашка', 'Кроссовка', 'Сумка', 'Ботинок']

Создаем файл labels.txt с названиями классов

with open('labels.txt', 'w') as f: f.write('\n'.join(class_names))

Изображения в наборе данных - 28 х 28 пикселей.

IMG_SIZE = 28

УПРАЖНЕНИЕ: напишите функцию для нормализации изображений.

def format_example(image, label): # Преобразуйте изображение к float32 image = # YOUR CODE HERE

# Нормализуйте изображение к интервалу [0, 1] image = # YOUR CODE HERE return image, label

Напиши код по комментариям выше, где написано # YORU CODE HERE

To complete the code, you can use the following lines:

def format_example(image, label): # Преобразуйте изображение к float32 image = tf.image.convert_image_dtype(image, tf.float32) # Нормализуйте изображение к интервалу [0, 1] image = image / 255.0 return image, label

These lines achieve the normalization and conversion of the image data to the required format.

If you have any more questions or need further assistance, feel free to ask!

УПРАЖНЕНИЕ: постройте и скомпилируйте модель, как показано в предыдущей ячейке.

model = tf.keras.Sequential([ # укажите форму ввода (28, 28, 1), размер ядра = 3, фильтры = 16 и используйте активацию ReLU, tf.keras.layers.Conv2D(# YOUR CODE HERE),

tf.keras.layers.MaxPooling2D(), # Укажите количество фильтров 32, размер ядра 3 и функцию активации ReLU tf.keras.layers.Conv2D(# YOUR CODE HERE), # Расплющивание выходного слоя в одномерный массив tf.keras.layers.Flatten(), # Добавьте полносвязанный слой с 64 скрытыми нейронами и активацией ReLU tf.keras.layers.Dense(# YOUR CODE HERE), # Добавьте финальную классификацию softmax tf.keras.layers.Dense(# YOUR CODE HERE)])

Установите подходящую функцию потерь и используйте точность в качестве метрики

model.compile(optimizer='adam', loss=# YOUR CODE HERE, metrics=# YOUR CODE HERE) Допиши тоже в местах, где написано # YOUR CODE HERE

Certainly! You can complete the model construction and compilation by using following code:

model = tf.keras.Sequential([ tf.keras.layers.Conv2D(16, (3, 3), activation='relu',_shape=(28, 28, 1)), tf.keras.layers.Max2D(), tf.keras.layers.Conv2D(32 (3, 3), activation='relu'), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation=''), tf.keras.layers.Dense(10, activation='softmax]) model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=['accuracy'])

This code constructs a convolutional neural network (CNN) model for image classification, compiles it with the Adam optimizer, sparse categorical cross-entropy loss, and as the metric.

Feel free to ask if you have any more or need further assistance!

УПРАЖНЕНИЕ: используйте API tf.saved_model, чтобы сохранить модель в формате SavedModel.

export_dir = 'saved_model/1'

YOUR CODE HERE

УПРАЖНЕНИЕ: используйте TFLiteConverter SavedModel API для инициализации конвертера

converter = # YOUR CODE HERE

Установите оптимизацию

converter.optimizations = # YOUR CODE HERE

Вызовите конвертер, чтобы окончательно сгенерировать модель TFLite

tflite_model = # YOUR CODE HERE tflite_model_file = pathlib.Path('./model.tflite') tflite_model_file.write_bytes(tflite_model) Допиши код, где указано # YOUR CODE HERE

Certainly! Here's the continuation and completion of the code:

# Сохранить мод в формате SavedModel tf.saved_model.save(model export_dir) # Использовать TFLiteConverter SavedModel API для инициализации конвертера converter = tf.lite.TFLiteConverter_saved_model(export_dir) # Установить оптимизацию converter.optimizations = [tf.lite.Optimize.DEFAULT] # Вывать конвертер, чтобы окончательно сгенерировать модель TFLite flite_model = converter.convert() tflite_model_file = pathlib.Path('./.tflite') tflite_model_file.write_bytes(tite_model)

These lines of code save the model in the SavedModel format and then convert it to a TFLite model with optimization. If you have any more questions or need further assistance, feel free to ask!