我想使用keras从第一个完全连接的层提取CNN激活。在Caffe中有这样一个函数,但我不能使用这个框架,因为我面临安装问题。我正在读一篇使用CNN激活的研究论文,但作者使用的是Caffe
有没有办法提取这些CNN激活,这样我就可以使用数据挖掘关联规则,apriori算法将它们作为事务中的项目使用
当然,首先我必须提取CNN激活的k最大量级。因此,每个图像都是一个事务,每个激活都是一个项目
到目前为止,我有以下代码:
from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.layers import Dense, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.models import Sequential
import matplotlib.pylab as plt
model = Sequential()
model.add(Conv2D(32, kernel_size=(5, 5), strides=(1, 1),
activation='relu',
input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(64, (5, 5), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(1000, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adam(),
metrics=['accuracy'])
使用
Tensorflow Keras
提到下面的解决方案为了能够访问
Activations
,首先我们应该传递一个或多个图像,然后激活对应于这些图像传递
Input Image
及其preprocessing
的代码如下所示:一旦定义了模型,我们就可以使用下面所示的代码访问任意层的
Activations
(关于猫和狗数据集):First Fully Connected Layer
(关于猫和狗的数据)的输出是:其输出如下所示:
欲了解更多信息,请参阅Keras之父Francois Chollet所著《中间激活可视化》一书的第5.4.1节
希望这有帮助。学习愉快
相关问题 更多 >
编程相关推荐