single
Типи Даних
Свайпніть щоб показати меню
Доступні типи даних у 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
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат