簡體   English   中英

Keras中的輸入整形和模型訓練

[英]Input shaping in Keras and model training

我知道目前有一些討論該主題的好帖子( 一篇非常出色且非常詳細的文章),但是經過2個小時的奮斗,我仍然遇到一些問題:

只是為了獲得一些背景信息:我正在獲取一些wav文件的頻譜圖(16 kHz,3秒,划分為20ms),然后嘗試將其饋入神經網絡,以查找它們是否包含具體詞(考慮0到1)確定范圍)。

def obtain_sample(wav):
    sample_rate, samples = wavfile.read(wav)
    frequencies, times, spectrogram = signal.spectrogram(samples, sample_rate, nperseg=320, noverlap=16)
    dBS = 10 * np.log10(spectrogram)  # convert to dB

    return dBS

def create_model():
    print("Creating Model...")
    model= Sequential()
    model.add(Dense(10,input_shape=(161,157)))
    model.add(Activation('sigmoid'))

    model.compile(optimizer='rmsprop',
                  loss='binary_crossentropy',
                  metrics=['accuracy'])

    com1=obtain_sample("comando.wav")
    com2=obtain_sample("comando2.wav")
    nocom=obtain_sample("nocomando.wav")
    inputs=np.array([com1,com2,nocom])
    results=np.array([[1.],[1.],[0.]])
    model.fit(inputs,results,epochs=10,)
    #model.fit(com1,[1.],epochs=10)
    #model.fit(com2,[1.],epochs=10)
    #model.fit(nocom,[0.],epochs=10)

    model.save("modelo_comando")
    print("Model saved")

我實際上收到以下錯誤:

ValueError('Error when checking target: expected activation_1 to have 3 dimensions, but got array with shape (3, 1)',)

經過將近一個小時的嘗試,在檢查局部var值時可以更好地解釋問題,我想我想問一下我是否給出了正確的輸入形狀,以及如何使用Flatten / Reshape圖層來獲得每個樣本輸出單個值?

抱歉,無法具體說明

在“密集”之后添加一個“平坦”層,在“平坦”層之后添加“密集”層,其中單位數應等於您期望的輸出形狀。 在這種情況下,我們期望一個值。 因此Dense(1)

inputs = np.random.rand(3,161,157)
model= Sequential()
model.add(Dense(10,input_shape=(161,157)))
model.add(Flatten())
model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy'])
model.summary()
results=np.array([[1.],[1.],[0.]])
model.fit(inputs,results,epochs=10)

我運行了上面的代碼,沒有任何問題。 請檢查這個

在模型上預測時

# Since i don't have the original data, i am creating some random values
test = np.random.rand(161,157)
test = np.expand_dims(test,axis=0)
model.predict(test)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM