Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 最后一层上的Keras特征提取_Python_Tensorflow_Machine Learning_Keras - Fatal编程技术网

Python 最后一层上的Keras特征提取

Python 最后一层上的Keras特征提取,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我想在展平后保存图层的特征向量。我该怎么做?作为输入,我想给出所有测试图像,让它预测结果,但在分类层之前,我需要提取网络学习的特征,并将其保存为向量。可能吗 这是我的密码: from keras.datasets import mnist from keras.utils import to_categorical from keras import layers from keras import models (train_img,train_label), (test_img, test

我想在展平后保存图层的特征向量。我该怎么做?作为输入,我想给出所有测试图像,让它预测结果,但在分类层之前,我需要提取网络学习的特征,并将其保存为向量。可能吗

这是我的密码:

from keras.datasets import mnist
from keras.utils import to_categorical
from keras import layers
from keras import models

(train_img,train_label), (test_img, test_label) = mnist.load_data()

#preprocessing
train_img = train_img.reshape((60000,28,28,1))
train_img = train_img.astype('float32')/255

test_img = test_img.reshape((10000,28,28,1))
test_img = test_img.astype('float32')/255


train_label = to_categorical(train_label)
test_label = to_categorical(test_label)

# model

model = models.Sequential()
model.add(layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64,(3,3), activation='relu'))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64,(3,3),activation='relu'))
#check summary for output
#model.summary()

model.add(layers.Flatten())

# !!! I need the a vector of features that this layer learned!!!!
model.add(layers.Dense(64,activation='relu'))


model.add(layers.Dense(10,activation='softmax'))

#model.summary()
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])

# training

model.fit(train_img, train_label, epochs=5, batch_size=64)

可以为特定图层设置名称:

model.add(layers.Dense(64,activation='relu', name='features'))
完成训练后,您可以获得重量:

model.get_layer('features').get_weights()[0]