、頻繁にblob.cpp、例えば、カフェのヘッダとソースファイルで使用されている...などCHECK
としての機能のようなマクロの多く、CHECK_EQ
は、我々が持っているがあります。CaffeのCHECK&CHECK_EQのような関数のようなマクロの定義はどこにありますか?私が気づいたよう
template <typename Dtype>
void Blob<Dtype>::FromProto(const BlobProto& proto, bool reshape) {
if (reshape) {
vector<int> shape;
if (proto.has_num() || proto.has_channels() ||
proto.has_height() || proto.has_width()) {
// Using deprecated 4D Blob dimensions --
// shape is (num, channels, height, width).
shape.resize(4);
shape[0] = proto.num();
shape[1] = proto.channels();
shape[2] = proto.height();
shape[3] = proto.width();
} else {
shape.resize(proto.shape().dim_size());
for (int i = 0; i < proto.shape().dim_size(); ++i) {
shape[i] = proto.shape().dim(i);
}
}
Reshape(shape);
} else {
CHECK(ShapeEquals(proto)) << "shape mismatch (reshape not set)";
}
// copy data
Dtype* data_vec = mutable_cpu_data();
if (proto.double_data_size() > 0) {
CHECK_EQ(count_, proto.double_data_size());
for (int i = 0; i < count_; ++i) {
data_vec[i] = proto.double_data(i);
}
} else {
CHECK_EQ(count_, proto.data_size());
for (int i = 0; i < count_; ++i) {
data_vec[i] = proto.data(i);
}
}
if (proto.double_diff_size() > 0) {
CHECK_EQ(count_, proto.double_diff_size());
Dtype* diff_vec = mutable_cpu_diff();
for (int i = 0; i < count_; ++i) {
diff_vec[i] = proto.double_diff(i);
}
} else if (proto.diff_size() > 0) {
CHECK_EQ(count_, proto.diff_size());
Dtype* diff_vec = mutable_cpu_diff();
for (int i = 0; i < count_; ++i) {
diff_vec[i] = proto.diff(i);
}
}
正確にこれらのマクロの定義はありますか。
あなたのIDEがそれを手助けできないのですか? – KABoissonneault
現時点では、IDEを使用せずにコードを読み込んでいます。 Fedoraに特別な提案はありますか? – Ali
次に、これらのマクロの定義のためにCaffeのヘッダファイルを検索するツールを使用することをお勧めします。マクロは「コンパイル」できません。したがって、マクロの定義は、アクセス可能なヘッダーを介して常にアクセスできます。 – KABoissonneault