亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Keras 負維度大小 Conv2D

Keras 負維度大小 Conv2D

拉莫斯之舞 2022-07-26 21:49:28
我一直在玩內核大小和通道安排一段時間,但沒有運氣。我不完全確定如何計算 Conv2D 層的校正器參數,我不確定這些參數的更改會在多大程度上影響與論文中模型的相似性。任何幫助將不勝感激。我嘗試根據文獻中的設計構建的模型input_shape = (4, 30, 180)model = Sequential()model.add(Convolution2D(32, (8, 8), strides=(4,4), activation='relu', input_shape=(4,30,180), data_format='channels_first'))model.add(Activation('relu'))model.add(Convolution2D(64, (4, 4), strides=(2, 2)))model.add(Activation('relu'))model.add(Convolution2D(64, (3, 3), strides=(1, 1)))model.add(Activation('relu'))model.add(Flatten())model.add(Dense(512))model.add(Activation('relu'))model.add(Dense(2))model.add(Activation('linear'))我收到的錯誤消息Traceback (most recent call last):  File "/Users/zacharyfrederick/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1659, in _create_c_op    c_op = c_api.TF_FinishOperation(op_desc)tensorflow.python.framework.errors_impl.InvalidArgumentError: Negative dimension size caused by subtracting 3 from 2 for 'conv2d_3/convolution' (op: 'Conv2D') with input shapes: [?,15,2,64], [3,3,64,64].During handling of the above exception, another exception occurred:Traceback (most recent call last):  File "stock_env.py", line 101, in <module>    model.add(Convolution2D(64, (3, 3), strides=(1, 1)))  File "/Users/zacharyfrederick/opt/anaconda3/lib/python3.7/site-packages/keras/engine/sequential.py", line 181, in add    output_tensor = layer(self.outputs[0])  File "/Users/zacharyfrederick/opt/anaconda3/lib/python3.7/site-packages/keras/engine/base_layer.py", line 457, in __call__    output = self.call(inputs, **kwargs)  File "/Users/zacharyfrederick/opt/anaconda3/lib/python3.7/site-packages/keras/layers/convolutional.py", line 171, in call    dilation_rate=self.dilation_rate)  File "/Users/zacharyfrederick/opt/anaconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py", line 3650, in conv2d    data_format=tf_data_format)  File "/Users/zacharyfrederick/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/ops/nn_ops.py", line 851, in convolution
查看完整描述

2 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

另一個答案在診斷中是正確的:卷積后,您的圖像會縮小,并且在某些時候內核變得比圖像大。嘗試

1)降低內核大小或

2)添加, padding='same'到你的卷積層。

使用計算卷積層中的輸出大小來計算輸出大小。


查看完整回答
反對 回復 2022-07-26
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

你有這個錯誤是因為你的內核和步幅對于你的輸入來說太大了,一個常見的開始是使用形狀(3, 3)和步幅的內核(1, 1)。


嘗試閱讀如何計算卷積,讓您直觀了解如何設置正確的內核/步幅大小:http ://cs231n.github.io/convolutional-networks/


此外,您有一個輸入channel first,因此您將第一個 conv 設置為channel first,這很好,但是您對所有卷積都執行此操作,因為默認情況下 keras 卷積將使用channel last.


例如,這是有效的:


input_shape = (4, 30, 180)

model = Sequential()

model.add(Conv2D(32, (8, 8), strides=(4, 4), activation='relu', input_shape=(4, 30, 180), data_format='channels_first'))

model.add(Activation('relu'))

model.add(Conv2D(64, (4, 4), strides=(1, 1), data_format='channels_first'))

model.add(Activation('relu'))

model.add(Conv2D(64, (3, 3), strides=(1, 1), data_format='channels_first'))

model.add(Activation('relu'))

model.add(Flatten())

model.add(Dense(512))

model.add(Activation('relu'))

model.add(Dense(2))

model.add(Activation('linear'))


查看完整回答
反對 回復 2022-07-26
  • 2 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號