Мне дан базовый код, который мне нужно изменить, чтобы иметь возможность использовать мои тренировочные данные в качестве входных данных, а не единственное изображение в коде. Я не уверен, правильно ли я поступлю, поскольку xtrain.shape
создает формат (50,000, 32, 32, 3)
. Когда я пытаюсь запустить каждое значение xtrain в resizer, а затем использовать эти данные в качестве прогнозируемого значения, я получаю resized_xtrain.shape
, он выдает (224, 224, 3)
, а len(results)
выдает 50,000
, если resized_xtrain не будет (50 000 , 224, 224, 3)?
Любые полезные советы будут великолепны. Мне нужно настроить данные в массив для последующего использования в качестве входных данных для классификатора randomForest.
Вот что было дано:
from keras.applications.vgg19 import VGG19
from keras.preprocessing import image
from keras.applications.vgg19 import preprocess_input
from keras.models import Model
import numpy as np
base_model = VGG19(weights='imagenet')
base_model.summary()
model = Model(inputs=base_model.input, outputs=base_model.get_layer('fc2').output)
img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
fc2_features = model.predict(x)
fc2_features.shape
И вот что я создал:
from skimage import transform
from keras.models import Model
model2 = Model(inputs=base_model.input, outputs=base_model.get_layer('fc2').output)
results=[]
for i in range (50000):
resized_xtrain= transform.resize(x_train[i], (224, 224, 3), order=1, mode='reflect')
#img_path = 'elephant.jpg'
#img = image.load_img(img_path, target_size=(224, 224))
#x = image.img_to_array(img)
x = np.expand_dims(resized_xtrain, axis=0)
x = preprocess_input(x)
fc2_features = model2.predict(x)
fc2_features.shape
results.append(fc2_features)