python实现cnn特征提取_用于特征提取的AlexNet

正如jonrsharpe所提到的,这并不是stackoverflow的工作原理,但在实践中,许多人确实选择编写代码来帮助解释答案(因为这通常更容易)。

所以我假设这只是一个错误的沟通,你真的想问以下两个问题中的一个:如何获取TensorFlow中Alexnet最后一层的值?在

如何从像alexnet这样的深卷积网络的最后一层提取特征?在

第一个问题的答案其实很简单。我将使用TensorFlow(松散地基于AlexNet)中的cifar10示例代码作为示例。网络的前向传递是在inference函数中构建的,该函数返回一个表示softmax层输出的变量。实际上,要获得预期的图像标签,只需argmax the logits,如下所示:(我省略了一些设置代码,但如果您已经在运行alexnet,那么您已经可以使用它了)logits = cifar10.inference(images)

predictions = tf.argmax(logits,1)

# Actually run the computation

labels = session.run([predictions])

所以,仅仅抓住最后一层的特征实际上和要求它们一样简单。唯一的问题是,在这种情况下,cifar10不会以本机方式公开它们,因此您需要修改cifar10.inference函数以同时返回这两个值:

^{pr2}$

然后修改对cifar10.inference的所有调用,就像我们刚才展示的那样:logits,local4 = cifar10.inference(images)

predictions = tf.argmax(logits,1)

# Actually run the computation, this time asking for both answers

labels,last_layer = session.run([predictions, local4])

就这样。last_layer包含您给模型的所有输入的最后一层。在

至于第二个问题,这是一个更深层次的问题,但我猜这就是为什么你要研究它。我建议先读一下这方面发表的一些论文。我不是这里的专家,但我确实喜欢周伯雷的作品。例如,尝试查看"Learning Deep Features for Discriminative Localization"中的图2。这是一篇本地化的论文,但它使用了非常相似的技术(伯雷的几篇论文也使用了这种技术)。在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值