2017-07-13 11 views
3

私はCNTK Convolution1d

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 

以下のようにCNTKで簡単なコンボリューションモデルを作成しようとしていますが、私は次のようなエラー を取得し続けるとValueError:畳み込みマップテンソルはランク1または入力と同じを持っている必要がありますテンソル。

答えて

1

Convolution1dレイヤにパラメータとしてreduction_rank = 0を追加することで、この問題を解決できました。

CNTK Layers Documentation

reduction_rank(整数、デフォルトは1)から引用

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 

- 入力項目はスカラー(入力がない深さ軸を有していない)、例えばである場合は0に設定オーディオ信号または代わりのテンソル形状(H、W)が格納されている白黒画像(1 H、W)

IはCNTKが自動的

このことを推測することができるであろうことを期待していました