Допустим, я хочу обучить простую модель в кератах на наборе данных, который для простоты содержит
- 3 метки
- 10 dim для 6 наблюдений.
Обратите внимание, что я упрощаю для целей этого примера.
Если мы тренируем модель с нашими 6 наблюдениями, то форма тензора x_train
должна быть [5,10]
, а наша y_train
должна быть [5, 2]
.
Мой вопрос касается построения тензора y_train
. Обычно мы получаем данные в виде массива измерения len(n_observations)
, где каждое значение соответствует отдельной метке / классу. Чтобы построить тензор y_train
, я обычно жонглирую с np.zeros
и np.ones
и np.stack
.
Так что в примере, описанном выше, если:
y_train_raw = np.repeat((1,2,3), 2) #initial format of the training labels
Я бы сделал что-то вроде:
label1=np.vstack((np.ones((2,1)), np.zeros((4,1))))
label2 = np.vstack((np.zeros((2,1)),np.ones((2,1)), np.zeros((2,1))))
label3=np.vstack((np.zeros((4,1)), np.ones((2,1))))
y_train = np.column_stack((label1, label2, label3))
Мой вопрос: есть ли способ программно сделать этот шаг быстрее?