我正在嘗試使用 Rkeras包運(yùn)行一維 CNN。我正在嘗試創(chuàng)建具有以下規(guī)范的一維卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu)library(keras)library(deepviz)#create a neural network with a convolutional layer and train the modelmodel <- keras_model_sequential() %>% layer_conv_1d(filters=32, kernel_size=4, activation="relu", input_shape=c(100, 10)) %>% layer_max_pooling_1d(pool_size=2) %>% layer_conv_1d(filters=64, kernel_size=4, activation="relu") %>% layer_max_pooling_1d(pool_size=5) %>% layer_conv_1d(filters=128, kernel_size=4, activation="relu") %>% layer_max_pooling_1d(pool_size=5) %>% layer_conv_1d(filters=256, kernel_size=4, activation="relu") %>% layer_max_pooling_1d(pool_size=5) %>% layer_dropout(rate=0.4) %>% layer_flatten() %>% layer_dense(units=100, activation="relu") %>% layer_dropout(rate=0.2) %>% layer_dense(units=1, activation="linear")但它給了我以下錯(cuò)誤py_call_impl(callable,dots$args,dots$keywords)中的錯(cuò)誤:ValueError:由于輸入形狀為:[?,1,1,128]的“conv1d_20/conv1d”(op:“Conv2D”)從1中減去4而導(dǎo)致負(fù)尺寸大小,[1,4,128,256]。如何解決錯(cuò)誤?還有一個(gè)問題,如何優(yōu)化filters、、、、?在我的問題中是一個(gè)任意值。如何決定輸入大?。縦ernel_sizepool_sizerateunitsinput_shape=c(100, 10)
1 回答

牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
您有太多最大池化層,最大池化層通過其參數(shù)減少輸入向量的維度。
嘗試減少 pool_size 參數(shù),或者刪除最后 2 個(gè)最大池層。對于所有層,您可以嘗試使用 pool_size=2 的值。
至于參數(shù),你應(yīng)該了解它們的含義:在這里你可以找到卷積層和最大池化層參數(shù)的解釋,如過濾器、內(nèi)核大小和池大?。壕矸e?層
dropout 層是一種正則化,可以最大化層權(quán)重的有效性,每個(gè)時(shí)期都會將權(quán)重的不同百分比(“速率”參數(shù)的大小)歸零。比率越大,過度擬合的情況就越少,但訓(xùn)練時(shí)間就越長。在這里了解它:?Dropout 層
單位是全連接層的大小。?全連接層
當(dāng)記錄數(shù)不算在內(nèi)時(shí),輸入形狀是數(shù)據(jù)的維度。在 1d 向量中,當(dāng) N 是向量長度且 C 是您擁有的通道數(shù)時(shí),它是 (N,C),如果您有 1 個(gè)通道,則它是 (N,1)。在二維向量中它是(高度,寬度,通道)。
添加回答
舉報(bào)
0/150
提交
取消