我在MATLAB中有这个AlexNet模型:
net = alexnet;
layers = net.Layers;
layers(end-2) = fullyConnectedLayer(numClasses);
layers(end) = classificationLayer;
我正在使用它来学习来自不同课程视频的帧序列的功能。所以我需要从这个模型的'fc7'层提取学习的特征,将这些特征保存为矢量并将其传递给LSTM层。 转移学习这个模型的训练过程没问题,好吧。
我在imageDatastore()中使用splitEachLabel()将数据集划分为x_train和x_test集合,并使用函数augmentedImageSource()调整网络的所有图像大小。一切都好!
但是,当我尝试你使用这个代码片段来调整我的imageDatastore中的图像以通过函数activations()来重新调整时,为了将这些功能保存为矢量,我收到了一个错误:
imageSize = [227 227 3];
auimds = augmentedImageSource(imageSize, imds, 'ColorPreprocessing', 'gray2rgb');
功能激活:
layer = 'fc7';
fclayer = activations(mynet, auimds, layer,'OutputAs','columns');
错误:
Error using SeriesNetwork>iDataDispatcher (line 1113)
For an image input layer, the input data for predict must be a single image, a 4D array of images, or an imageDatastore with the correct size.
Error in SeriesNetwork/activations (line 791)
dispatcher = iDataDispatcher( X, miniBatchSize, precision, ...
有人帮帮我,拜托! 感谢您的支持!
答案 0 :(得分:0)
您是否检查过该图层的输入尺寸?您获得的错误与当前图层的输入大小有关。你能在Matlab中检查你的mynet结构及其fc7层输入的大小吗?