Sample_weight_mode = "Temporal" не работает, какие-либо решения / идеи / идеи? - PullRequest
0 голосов
/ 03 октября 2019

Я новичок в машинном обучении и пытаюсь внедрить классификатор шагов по времени в кератах. В настоящее время у меня есть 45 образцов 6-секундных аудиоклипов, которые я извлекаю из функций и выравниваю каждый шаг по времени для двоичного класса (0 или 1). Мои фигуры выглядят следующим образом:

X_train.shape = (45,259,768)

Y_train.shape = (45,259,1)

Мое число 0 намного больше моего числа 1, и поэтому я использую sklearn и compute_sample_weights для получения матрицы весов выборки для каждого временного шага и каждой выборки сформа:

sample_weights.shape = (45,259)

Вот моя модель:

epochs = 25
model = Sequential()

model.add(Bidirectional(LSTM(units=25,input_shape=(259,768),return_sequences=True)))
model.add(Bidirectional(LSTM(units=25,return_sequences=True)))
model.add(TimeDistributed(Dense(2, activation='sigmoid')))


model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',sample_weight_mode="temporal",
              metrics=['categorical_accuracy','binary_accuracy','mse','mae'])



model.fit(x=X_train,y=Y_train,epochs=epochs,batch_size=512,validation_split=0.3,sample_weight=sample_weights)

Однако я получаю сообщение об ошибке:

ValueError: Найден массив sample_weight сформа (45, 259). Чтобы использовать веса выборки по временным шагам, вы должны указать sample_weight_mode = "temporal" в compile (). Если вы просто хотите использовать весовые коэффициенты выборки, убедитесь, что ваш массив sample_weight имеет значение 1D.

У кого-нибудь есть исправления для этого ?? Как видите, я указал sample_weight_mode = 'temporal', и я считаю, что мои фигуры правильные, но я не уверен.

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