Форма тензора - PullRequest
       14

Форма тензора

2 голосов
/ 11 апреля 2019

я наткнулся на этот кусок кода

(x_train, y_train), (x_test, y_test) = mnist.load_data() print("Shape of x_train: " + str(x_train.shape)) print("Shape of y_train: " + str(y_train.shape))

И обнаружил, что вывод выглядит так

(60000, 28, 28) (60000,)

Для первой строки вывода

Насколько я понимаю, означает ли это, что в 1-м измерении он может содержать 60 тыс. Элементов, затем в следующем измерении он может содержать 28" массив из 60 тыс. Элементов " и, наконец, в последнем измерении он может содержать 28" массив из 28" массив из 60 тыс. элементов ""

Что я хочу уточнить: это 60k выборок данных 28x28 или что-то еще?

Для второй строки вывода кажется, что это просто 1d массив из 60 тыс. Элементов. Так что же это на самом деле представляет? (я знаю, что в x_train это были рукописные числа, и каждое число представляет интенсивность серого в этой ячейке)

Обратите внимание, что я взял этот код из какого-то онлайн-примера (я не помню и не возражаю, если вы хотите, чтобы ваш кредит был добавлен к этому) и общедоступного набора данных tf.keras.datasets.mnist

Ответы [ 3 ]

1 голос
/ 11 апреля 2019

Вы правы, первая строка дает 60 тыс. Элементов данных размера 28x28, таким образом (60000, 28, 28).

y_train - метки x_train.Таким образом, они являются одномерными и имеют число 60 тыс.

Например: если первый элемент x_train представляет собой рукописное изображение 3, то первым элементом y_train будет «3», чтоэто ярлык.

1 голос
/ 11 апреля 2019

Чтобы понять это, давайте начнем с массива 1d формы (8,).

[1, 2, 3, 4, 5, 6, 7, 8]

Если он представлен в виде двумерного массива, скажем, формы (4, 2), он становится

[
  [1, 2],
  [3, 4],
  [5, 6],
  [7, 8]
]

См., Что каждый элемент в массиве 2d получает форму (2,) и всего 4 элемента.

Представим в 3d с размером (2, 2, 2).

[
  [
    [1, 2],
    [3, 4]
  ],
  [
    [5, 6],
    [7, 8]
  ]
]

Массив на верхнем уровне имеет 2 элемента, что является 0-м измерением. На втором уровне снова есть 2 предмета [1, 2], [3, 4]. Конечное измерение размера 2 обозначает 1 & 2, последний уровень элементов в иерархии массива.

Следовательно, тензор формы (x, y, z) будет содержать x*y*z элементов.

1 голос
/ 11 апреля 2019

Ваше понимание форм правильное.Из контекста, вероятно, x_train - это 60-тысячные изображения рукописных чисел (с разрешением 28x28 пикселей), а y_train - просто 60-тысячное истинное число, которое показывают изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...