Типи Даних
Типи даних
У цьому розділі розглядається поняття типів даних у TensorFlow. Подібно до того, як мови програмування класифікують числа та текст на такі типи, як цілі числа, числа з плаваючою комою або рядки, тензори в TensorFlow також мають певні типи.
Доступні типи даних у TensorFlow
TensorFlow підтримує велику кількість типів даних для роботи з різними видами даних та операцій. Деякі з найбільш поширених типів:
-
tf.float16,tf.float32,tf.float64: числа з плаваючою комою, де важливі цифри після крапки. Число в назві (наприклад,16уtf.float16) вказує на кількість бітів, що використовується.tf.float32часто використовується, оскільки забезпечує оптимальний баланс між точністю та швидкістю обчислень; -
tf.int8,tf.int16,tf.int32,tf.int64: цілі типи, числа без десяткової крапки. Можуть бути як додатними, так і від’ємними; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: 'u' означає 'unsigned' (беззнаковий), тобто ці цілі числа завжди невід’ємні; -
tf.bool: представляє булеві значення (TrueабоFalse); -
tf.string: для текстових даних.
Для цілих типів більше число в назві означає лише ширший діапазон значень, які можна зберігати. Для типів з плаваючою комою більше число в назві також вказує на вищу обчислювальну точність.
У TensorFlow доступно більше типів даних, але для початківців важливо спочатку ознайомитися з основними типами. Повний перелік типів даних, які підтримує TensorFlow, можна знайти на цій сторінці документації TensorFlow.
Встановлення типу даних при створенні тензора
Під час ініціалізації тензора можна вказати його тип за допомогою аргументу dtype:
123456789101112import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
Багато функцій створення тензорів використовують цей підхід. Це застосовується у таких методах, як tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform(), а також у tf.convert_to_tensor().
Перетворення між типами даних
Але що робити, якщо функція, яку ви використовуєте, не дозволяє безпосередньо вказати тип даних? Або, можливо, у вас вже є тензор певного типу і потрібно його змінити. У таких випадках необхідно перетворювати тензори з одного типу даних в інший. Це особливо актуально, оскільки деякі операції або шари нейронних мереж часто вимагають вхідних даних певного типу, переважно чисел з плаваючою комою.
Для цього можна використати tf.cast():
123456789101112import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
Пам’ятайте, що під час перетворення з типу з плаваючою комою у цілочисельний тип TensorFlow виконує операцію підлоги (floor), тобто відкидає дробову частину. Таким чином, 3.8 стає 3, а -1.2 стає -1.
Будьте обережні при зміні типів даних, особливо якщо ви переходите до типу з меншою точністю. У процесі можна втратити інформацію.
Swipe to start coding
Ваше завдання — створити тензор із певним типом даних, а потім перетворити його на інший тип даних.
- Створіть тензор з назвою
initial_tensorрозмірності(3, 3)з нормально розподіленими значеннями. Переконайтеся, що цей тензор має тип даних 64-розрядних чисел з плаваючою комою. - Перетворіть
initial_tensorу тензор з назвоюconverted_tensorз типом даних 16-розрядних чисел з плаваючою комою.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 6.25
Типи Даних
Свайпніть щоб показати меню
Типи даних
У цьому розділі розглядається поняття типів даних у TensorFlow. Подібно до того, як мови програмування класифікують числа та текст на такі типи, як цілі числа, числа з плаваючою комою або рядки, тензори в TensorFlow також мають певні типи.
Доступні типи даних у TensorFlow
TensorFlow підтримує велику кількість типів даних для роботи з різними видами даних та операцій. Деякі з найбільш поширених типів:
-
tf.float16,tf.float32,tf.float64: числа з плаваючою комою, де важливі цифри після крапки. Число в назві (наприклад,16уtf.float16) вказує на кількість бітів, що використовується.tf.float32часто використовується, оскільки забезпечує оптимальний баланс між точністю та швидкістю обчислень; -
tf.int8,tf.int16,tf.int32,tf.int64: цілі типи, числа без десяткової крапки. Можуть бути як додатними, так і від’ємними; -
tf.uint8,tf.uint16,tf.uint32,tf.uint64: 'u' означає 'unsigned' (беззнаковий), тобто ці цілі числа завжди невід’ємні; -
tf.bool: представляє булеві значення (TrueабоFalse); -
tf.string: для текстових даних.
Для цілих типів більше число в назві означає лише ширший діапазон значень, які можна зберігати. Для типів з плаваючою комою більше число в назві також вказує на вищу обчислювальну точність.
У TensorFlow доступно більше типів даних, але для початківців важливо спочатку ознайомитися з основними типами. Повний перелік типів даних, які підтримує TensorFlow, можна знайти на цій сторінці документації TensorFlow.
Встановлення типу даних при створенні тензора
Під час ініціалізації тензора можна вказати його тип за допомогою аргументу dtype:
123456789101112import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
Багато функцій створення тензорів використовують цей підхід. Це застосовується у таких методах, як tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform(), а також у tf.convert_to_tensor().
Перетворення між типами даних
Але що робити, якщо функція, яку ви використовуєте, не дозволяє безпосередньо вказати тип даних? Або, можливо, у вас вже є тензор певного типу і потрібно його змінити. У таких випадках необхідно перетворювати тензори з одного типу даних в інший. Це особливо актуально, оскільки деякі операції або шари нейронних мереж часто вимагають вхідних даних певного типу, переважно чисел з плаваючою комою.
Для цього можна використати tf.cast():
123456789101112import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
Пам’ятайте, що під час перетворення з типу з плаваючою комою у цілочисельний тип TensorFlow виконує операцію підлоги (floor), тобто відкидає дробову частину. Таким чином, 3.8 стає 3, а -1.2 стає -1.
Будьте обережні при зміні типів даних, особливо якщо ви переходите до типу з меншою точністю. У процесі можна втратити інформацію.
Swipe to start coding
Ваше завдання — створити тензор із певним типом даних, а потім перетворити його на інший тип даних.
- Створіть тензор з назвою
initial_tensorрозмірності(3, 3)з нормально розподіленими значеннями. Переконайтеся, що цей тензор має тип даних 64-розрядних чисел з плаваючою комою. - Перетворіть
initial_tensorу тензор з назвоюconverted_tensorз типом даних 16-розрядних чисел з плаваючою комою.
Рішення
Дякуємо за ваш відгук!
single