Wie Umformen, ein blob in Caffe?
Wie Umformen, ein blob der Form N x C x H x W
zu N x 1 x (C*H) x W
im Caffe?
Möchte ich ein convolution-Schicht die GEWICHTE gleich sind und zwischen den Kanälen.
Einer Weise, die ich kommen mit ist die Umgestaltung der unteren blob von der Form N x C x H x W
zu N x 1 x (C*H) x W
Ort und ein convolution-Schicht auf Sie. Aber ich weiß einfach nicht, wie Sie zu Umformen einen blob.
Bitte helfen Sie mir, danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als zeigte durch whjxnyzh, die Sie verwenden können
"Reshape"
Schicht. Caffe ist Recht flexibel, in der Art, es ermöglicht Ihnen zu definieren, der output-Form.Sehen die Deklaration von
reshap_param
im Cafe.proto`:In deinem Fall denke ich, Sie müssen eine Schicht wie diese:
Finden Sie auch auf caffe.helfen.
reshape(const vector<int>& shape)
? Was ist der Unterschied zwischen Klasse, Methodereshape
und der reshape-Schicht?Caffe hat jetzt eine reshapeLayer für Sie.
http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1ReshapeLayer.html
Wenn ich verstehe deine Letzte Ziel rechts, Caffe convolution-Schicht schon können mehrere input-output-Faltung mit gemeinsamen/geteilten Filter wie:
Vorausgesetzt, Sie haben alle Ströme split (slice-Ebene tun können), und schließlich können Sie Sie Zusammenführen, wenn gewünscht, mit einem concat oder eltwise Schicht.
Vermeiden, dass die Bedürfnisse der Umgestaltung blob, gefaltet, und dann reshaping it zurück, die das vielleicht einführen, die cross-channel-Interferenzen in der Nähe der Ränder.
Nicht sicher, ob das passt Ihren Angaben genau, aber Caffe hat die Reduzierung von Ebenen. Der blob geht von n * c * h * w n * (chw) * 1 * 1.
Sehen http://caffe.berkeleyvision.org/tutorial/layers.html