Общий вопрос о значении -1 - PullRequest
       9

Общий вопрос о значении -1

0 голосов
/ 09 января 2019

Я работаю над проблемой в машинном обучении и вижу, что [-1] часто появляется в разных местах кода, но, похоже, я не могу понять значение этого.

В этом конкретном примере цель состоит в том, чтобы слегка сместить все изображения в тренировочном наборе.

Вот код:

from scipy.ndimage.interpolation import shift

def shift_image(image, dx, dy):
    image = image.reshape((28, 28))
    shifted_image = shift(image, [dy, dx], cval=0, mode="constant")
    return shifted_image.reshape([-1])

Какое значение -1 в последней строке?

Ответы [ 3 ]

0 голосов
/ 09 января 2019

Метод reshape принимает список целых чисел в качестве параметра, и в этом случае элемент списка равен -1.

Значение -1, в частности, влияет на изменение размера, которое, я уверен, вы можете найти в простой документации.

Надеюсь, это поможет!

0 голосов
/ 09 января 2019

В числовых массивах reshape Позволяет вам "вывести" одно из измерений при попытке изменить форму массива.

import numpy as np
a = np.arange(4).reshape(2,2)
#Output:
array([[0, 1],
       [2, 3]])
a.reshape([-1])
#Output:
array([0, 1, 2, 3])

Если вы заметили, вы также можете переписать первое изменение формы с помощью логического вывода следующим образом:

b =np.arange(4).reshape(2,-1)
#Output:
array([[0, 1],
       [2, 3]])
0 голосов
/ 09 января 2019

Эта строка:

shifted_image.reshape([-1])

Просто вызывает метод reshape со списком в качестве параметра, и список содержит один элемент, число -1. Это приводит к изменению формы массива. Из документов:

Один размер формы может быть -1. В этом случае значение выводится из длины массива и оставшихся измерений

...