実現したいこと
KerasのImagenetで事前学習済みのDenseNetを使用して画像から1664次元の特徴ベクトルの抽出を行いたい
##ソースコード
Python
1#各ライブラリ読み込み 2import os 3import glob 4from PIL import Image 5import numpy as np 6from keras.preprocessing.image import load_img,img_to_array 7from keras.applications.densenet import DenseNet169 8from keras.preprocessing import image 9from keras.applications.densenet import preprocess_input 10 11#画像読み込み、サイズの確認 12dir_name = '' 13 14img_paths = [] 15for i in glob.glob(dir_name + "/*.jpg"): 16 img_paths.append(i) 17 18dataset = [] 19for i in img_paths: 20 img = Image.open(i) 21 img = image.load_img(i, target_size=(224,224)) 22 x = image.img_to_array(img) 23 x = preprocess_input(x) 24 dataset.append(x) 25 26dataset = np.array(dataset) 27 28 29#学習済みネットワークから特徴を抽出(Densenet) 30# 全結合層はいらないのでinclude_top=False 31model = DenseNet169(include_top=False, input_shape=[224,224, 3], weights='imagenet') 32bottleneck_features = model.predict(dataset) 33print("data size:" , bottleneck_features.shape) 34
##抱えている問題
欲しい出力が(画像枚数,1664)に対して、抽出した特徴を確認すると(画像枚数,7,7,1664)となっています。
どのようにすれば欲しい出力が得られるか分からず、詰まっている状況です。
何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー