#python #tensorflow #machine-learning #pytorch
#python #тензорный поток #машинное обучение #pytorch
Вопрос:
Я наткнулся на этот фрагмент кода
(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 тыс. элементов ««
Что я хочу уточнить, это 60 тысяч выборок данных 28×28 или что-то еще?
Для второй строки вывода кажется, что это всего лишь 1-мерный массив из 60 тыс. элементов. Итак, что это на самом деле представляет? (я знаю, что в x_train это были рукописные числа, и каждое число представляет интенсивность серого в этой ячейке)
Пожалуйста, обратите внимание, что я взял этот код из какого-то онлайн-примера (я не помню и не буду возражать, если вы хотите, чтобы ваш кредит был добавлен к этому) и общедоступного набора данных tf.keras.datasets.mnist
Комментарии:
1.
(60000, 28, 28)
== 60000 изображений формы28x28
.(60000,)
== массив из 60000 элементов (в данном случае целых чисел в диапазоне 0-9). Если бы у(60000, 28, 28, 3)
вас это было, это означало бы, что у вас есть 60000 изображений RGB, каждое из которых имеет форму(28, 28, 3)
.
Ответ №1:
Вы правы, таким образом, первая строка дает 60 тыс. элементов 28x28
данных размера (60000, 28, 28)
.
y_train
Это метки x_train
. Таким образом, они являются одномерными и насчитывают 60 тыс.
Например: если первый элемент x_train
представляет собой рукописное изображение 3, то первым элементом y_train
будет ‘3’, который является меткой.
Комментарии:
1. Я работал с рукописным набором данных MNIST. Итак, я знаком с тем же.
2. Я обнаружил, что этот комментарий ответил на мой вопрос именно так, как я ожидал (извиняюсь за то, что не так хорошо сформулировал мой вопрос) Этот ответ также ответил на мои последующие вопросы, поэтому я отмечаю это как ответ. Другие ответы не являются неверными, все они верны и дали мне более подробное представление о наборе данных, о котором я никогда не думал. Жаль, что я не мог пометить все как ответы.
Ответ №2:
Ваше понимание фигур правильное. Из контекста, вероятно x_train
, это 60 тыс. изображений рукописных чисел (с разрешением 28×28 пикселей), а y_train
это просто истинное число 60 тыс., которое показывают изображения.
Ответ №3:
Чтобы понять это, давайте начнем с одномерного массива shape (8,) .
[1, 2, 3, 4, 5, 6, 7, 8]
Если это представлено в виде 2d-массива, скажем, формы (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 amp; 2
последний уровень элементов в иерархии массива.
Следовательно, тензор формы (x, y, z) будет содержать x*y*z
элементы.