在caffe中使用自定义cnn提取图像特征

时间:2018-07-27 14:49:45

标签: conv-neural-network caffe recurrent-neural-network feature-extraction

我正在研究基于CNN-RNN框架的一些图像标记问题。我需要通过CNN提取cifar-100图像特征,并将其提供给RNN。由于像vgg和resnet这样的网络的输入维是(3 * 224 * 224),而cifar-100图像是32 * 32,因此我不得不为cifar数据集找到CNN代码,并发现this。 此Caffe代码可在cifar上使用,并且输出是准确性和损失,但我需要(ip1 + sig1)层的输出。

 .
 .
 .
layer {
  name: "ip1"
  type: "InnerProduct"
  bottom: "pool3"
  top: "ip1"
  inner_product_param {
    num_output: 768
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "sig1"
  type: "Sigmoid"
  bottom: "ip1"
  top: "ip1"
}
layer {
  name: "ip_c"
  type: "InnerProduct"
  bottom: "ip1"
  top: "ip_c"
  inner_product_param {
    num_output: 20
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "accuracy_c"
  type: "Accuracy"
  bottom: "ip_c"
  bottom: "label_coarse"
  top: "accuracy_c"
}
layer {
  name: "loss_c"
  type: "SoftmaxWithLoss"
  bottom: "ip_c"
  bottom: "label_coarse"
  top: "loss_c"
}
layer {
  name: "ip_f"
  type: "InnerProduct"
  bottom: "ip1"
  top: "ip_f"
  inner_product_param {
    num_output: 100
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "accuracy_f"
  type: "Accuracy"
  bottom: "ip_f"
  bottom: "label_fine"
  top: "accuracy_f"
}
layer {
  name: "loss_f"
  type: "SoftmaxWithLoss"
  bottom: "ip_f"
  bottom: "label_fine"
  top: "loss_f"
}

我不想重新训练模型,仅使用预先训练的权重并获取特征向量。 我怎样才能做到这一点?! 有人可以帮我吗?

0 个答案:

没有答案