簡體   English   中英

Keras 用於大量樣本的 Conv1D 輸入

[英]Keras Conv1D input for a very large number of samples

我有一個包含大量樣本 1686663 和 107 個特征(1686663、107)的數據集。 我正在使用 keras 構建神經網絡,並想應用一維卷積 Conv1D。

Conv1D 的輸入是(批量大小、數字特征、時間步長)。 批量大小基本上是樣本的數量,但是在我的情況下,我不能使用對於我的 RAM 來說太大的樣本數量。 所以我選擇了一個批量大小 = 512。

in_shape = (batch_size,x_train.shape[1],1)

因此,我的輸入形狀現在是 (512, 107, 1)。

我重塑了訓練向量以匹配卷積:

x_train = x_train.reshape(x_train.shape[0],x_train_shape[1],1)

運行訓練時出現以下錯誤:

ValueError: Input 0 of layer "sequential_10" is incompatible with the layer: expected shape=(None, 512, 107, 1), found shape=(None, 107, 1) 

誰能告訴我我在這里缺少什么?

當您指定輸入形狀時,通過添加tf.keras.Input層作為第一層,或者通過直接在 model 的第一層中設置參數input_shape ,您不必添加批量大小。 因此,在您的情況下,它將是:

in_shape = (x_train.shape[1], 1)

通過采用您在fit()方法的batch_size參數中設置的值,批量大小會自動設置為輸入形狀的第一維。

但是,如果您這樣做(batch_size, x_train.shape[1], 1) ,它將兩次添加批量大小。

該錯誤基本上是說它期望找到(batch size, 512, 107, 1)但找到了(batch size, 107, 1) 預計會有額外的 512,因為您添加了兩次批量大小。

暫無
暫無

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

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