Типи Даних
Типи даних
У цьому розділі ви ознайомитеся з поняттям типів даних у 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 виконує операцію підлоги, фактично відкидаючи десяткову частину. Тобто, 3.8
стає 3
, а -1.2
стає -1
.
Будьте обережні під час зміни типів даних, особливо якщо переходите до типу з меншою точністю. У процесі можна втратити інформацію.
Swipe to start coding
Ваше завдання — створити тензор з певним типом даних, а потім перетворити його на інший тип даних.
- Створіть тензор з назвою
initial_tensor
форми(3, 3)
з нормально розподіленими значеннями. Переконайтеся, що цей тензор має тип даних 64-розрядних чисел з плаваючою комою. - Перетворіть
initial_tensor
на тензор з назвоюconverted_tensor
з типом даних 16-розрядних чисел з плаваючою комою.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
What are some practical examples of when I would need to change a tensor's data type?
Can you explain the difference between signed and unsigned integer types in TensorFlow?
How do I check the data type of an existing tensor?
Awesome!
Completion rate improved to 5.56
Типи Даних
Свайпніть щоб показати меню
Типи даних
У цьому розділі ви ознайомитеся з поняттям типів даних у 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 виконує операцію підлоги, фактично відкидаючи десяткову частину. Тобто, 3.8
стає 3
, а -1.2
стає -1
.
Будьте обережні під час зміни типів даних, особливо якщо переходите до типу з меншою точністю. У процесі можна втратити інформацію.
Swipe to start coding
Ваше завдання — створити тензор з певним типом даних, а потім перетворити його на інший тип даних.
- Створіть тензор з назвою
initial_tensor
форми(3, 3)
з нормально розподіленими значеннями. Переконайтеся, що цей тензор має тип даних 64-розрядних чисел з плаваючою комою. - Перетворіть
initial_tensor
на тензор з назвоюconverted_tensor
з типом даних 16-розрядних чисел з плаваючою комою.
Рішення
Дякуємо за ваш відгук!
single