Как получить доступ к значениям Tensor и изменить их в PyTorch?

Kak Polucit Dostup K Znaceniam Tensor I Izmenit Ih V Pytorch



PyTorch — это платформа глубокого обучения, которая позволяет пользователям создавать/определять тензоры и манипулировать ими. Тензоры — это многомерные массивы, которые могут хранить данные/значения различных типов и форм. Однако иногда пользователи хотят получить доступ и изменить конкретное содержимое или значения нужного тензора. В этой ситуации они могут использовать разные методы для выполнения этой операции.

В этом блоге будут показаны методы доступа и изменения значений тензоров в PyTorch.

Как получить доступ и изменить значения/контент Tensor в PyTorch?

Чтобы получить и изменить значения тензоров в PyTorch, можно использовать два метода:







Метод 1: доступ и изменение значений тензора с помощью индексации

Индексирование — это способ выбора определенного элемента или диапазона элементов из определенного тензора на основе их положения. Пользователям необходимо использовать квадратные скобки « [ ] » для доступа к элементам по каждому измерению тензора. В случае двумерного тензора доступ к элементам можно получить в строке «i» и столбце «j», используя «tensor[i,j]». Для этого выполните указанные шаги:



Шаг 1. Импортируйте библиотеку PyTorch.

Сначала импортируйте « факел » библиотека:



Импортировать факел

Шаг 2. Создайте тензор

Затем используйте « факел.тензор() » для создания желаемого тензора и печати его элементов. Например, мы создаем 2D-тензор « десятки1 » размерами 2×3:





десятки1 '=' факел. тензор ( [ [ 2 , 9 , 5 ] , [ 7 , 1 , 4 ] ] )

Распечатать ( десятки1 )

Это создало 2D-тензор, как показано ниже:



Шаг 3. Доступ к значениям тензора с помощью индексации

Теперь получите доступ к нужным значениям тензора по их индексу. Например, мы указали индекс «[1][2]» для « десятки1 », чтобы получить доступ к его значению, и сохранить его в переменной с именем « temp_element ». Это позволит получить доступ к значению, присутствующему во второй строке и третьем столбце:

temp_element '=' десятки1 [ 1 ] [ 2 ]

Распечатать ( temp_element )

Здесь: ' [1] ” означает вторую строку и “ [2] ” означает третий столбец, поскольку индексация начинается с “ 0 ».

Можно заметить, что доступ к желаемому значению был получен из тензора, то есть «4»:

Шаг 4. Измените значения тензора с помощью индексации

Чтобы изменить конкретное значение тензора, укажите индекс и выделите новое значение. Здесь мы заменяем значение « [0][1] ” индекс с “ пятнадцать »:

десятки1 [ 0 ] [ 1 ] '=' пятнадцать

Распечатать ( десятки1 )

Вывод ниже показывает, что указанное значение тензора было успешно изменено:

Метод 2: доступ и изменение значений тензора с помощью срезов

Нарезка — это способ выбора подмножества тензора с одним или несколькими измерениями. Пользователи могут использовать оператор двоеточия «:» для указания начального и конечного индексов среза и размера шага. Чтобы лучше понять это, ознакомьтесь с приведенными ниже шагами:

Шаг 1. Импортируйте библиотеку PyTorch.

Сначала импортируйте « факел » библиотека:

Импортировать факел

Шаг 2. Создайте тензор

Затем создайте желаемый тензор, используя « факел.тензор() » и распечатайте ее элементы. Например, мы создаем 2D-тензор « десятки2 » размерами 2х3:

десятки2 '=' факел. тензор ( [ [ 5 , 1 , 9 ] , [ 3 , 7 , 2 ] ] )

Распечатать ( десятки2 )

Это создало 2D-тензор:

Шаг 3. Доступ к значениям тензора с помощью срезов

Теперь получите доступ к нужным значениям тензора с помощью нарезки. Например, мы указали индексы «[1]» для «tens1» для доступа к его значениям и сохранения их в переменной с именем « новые_значения ». Это позволит получить доступ ко всем значениям, присутствующим во второй строке:

новые_значения '=' десятки2 [ 1 ]

Распечатать ( 'Значения второй строки: ' , новые_значения )

В приведенном ниже выводе все значения, присутствующие во второй строке тензора, были успешно доступны:

Давайте возьмем другой пример, в котором мы получим доступ к значению третьего столбца тензора. Для этого укажите « [:, 2] индексы:

новые_значения2 '=' десятки2 [ : , 2 ]

Распечатать ( 'Значения третьего столбца: ' , новые_значения2 )

Это успешно получило доступ и отобразило значения третьего столбца тензора:

Шаг 4. Измените значения тензора с помощью срезов

Чтобы изменить конкретные значения тензора, укажите индексы и выделите новое значение. Здесь мы меняем все значения второй строки тензора. Для этого мы указали « [1] » индексы и выделяем новые значения:

десятки2 [ 1 ] '=' факел. Тензор ( [ 30 , 60 , 90 ] )

Распечатать ( 'Модифицированный тензор: ' , десятки2 )

Согласно приведенному ниже выводу, все значения значений второй строки тензора были успешно изменены:

Мы объяснили эффективные методы доступа и изменения значений тензора в PyTorch.

Примечание : Вы можете получить доступ к нашему блокноту Google Colab по этому адресу. связь .

Заключение

Чтобы получить и изменить значения или содержимое тензора в PyTorch, сначала импортируйте библиотеку «факел». Затем создайте желаемый тензор. Затем используйте методы индексации или срезов для доступа и изменения желаемых значений тензора. Для этого укажите индекс индексов соответственно и отобразите доступные и измененные значения тензора. В этом блоге проиллюстрированы методы доступа и изменения значений тензоров в PyTorch.