我是机器学习的新手,我正在尝试在keras中实现一个每时间步分类器。目前,我有45个6秒音频剪辑的样本,我做了一些特征提取和调整每一个二进制类(0或1)的时间步。我的形状如下:
X_train.shape = (45,259,768)
Y_train.shape = (45,259,1)
我的0的数目比我的1的数目大得多,因此我使用sklearn和compute\u sample\u 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: Found a sample_weight array with shape (45, 259). In order to use timestep-wise sample weights, you should specify sample_weight_mode="temporal" in compile(). If you just mean to use sample-wise weights, make sure your sample_weight array is 1D.
有人能解决这个问题吗??如你所见,我已经指定了sample\u weight\u mode='temporal',我相信我的形状是正确的,但我不确定。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐