簡體   English   中英

CNTK Convolution1d

[英]CNTK Convolution1d

我試圖在CNTK中創建一個簡單的卷積模型,如下所示

def create_model(hidden_dim, output_dim):
    nn=C.layers.Sequential([ C.layers.Embedding(shape=50,name='embedding'),
        C.layers.Convolution1D((40,),num_filters=5, activation=C.ops.relu),
        C.layers.GlobalMaxPooling(),
        C.layers.Dense(shape=40, activation=C.ops.tanh, init_bias=0.1), 
        C.layers.Dense(shape=2, activation=None, init_bias=0.1)
        ])
    return nn

但我繼續得到以下錯誤ValueError:卷積映射張量必須具有等級1或與輸入張量相同。

我能夠通過將reduction_rank = 0作為參數添加到Convolution1d層來解決此問題。

def create_model(hidden_dim, output_dim):
nn=C.layers.Sequential([ C.layers.Embedding(shape=50,name='embedding', **reduction_rank=0**),
    C.layers.Convolution1D((40,),num_filters=5, activation=C.ops.relu),
    C.layers.GlobalMaxPooling(),
    C.layers.Dense(shape=40, activation=C.ops.tanh, init_bias=0.1), 
    C.layers.Dense(shape=2, activation=None, init_bias=0.1)
    ])
return nn

引自CNTK圖層文檔

reduction_rank(int,默認為1) - 如果輸入項是標量(輸入沒有深度軸),則設置為0,例如音頻信號或以張量形狀(H,W)存儲的黑白圖像,而不是(1,H,W)

我原以為CNTK能夠自動推斷出這件事

暫無
暫無

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

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