#python #image #reshape
#python #изображение #изменить
Вопрос:
Я преобразовываю изображение в формат rgb, после чего хочу изменить его размер до интересующего меня размера, но появляется ошибка ниже. Я попробовал следующую функцию:
def predict(graph):
im = Image.open("image.jpeg")
mat = np.asarray(im.convert('RGB'))
mat = mat.reshape(1,64,64,3)
mat = mat / 255.
x = graph.get_tensor_by_name("input_x:0")
outlayer = graph.get_tensor_by_name("outlayer:0")
prob = graph.get_tensor_by_name("probability:0")
predict = graph.get_tensor_by_name("predict:0")
with tf.Session(graph=graph) as sess:
np.set_printoptions(suppress=True)
out, prob, pred = sess.run([outlayer, prob,predict],feed_dict={x:mat})
print(out)
print(prob)
print(pred)
if __name__=="__main__":
graph = load_model()
predict(graph)
но я не могу избавиться от этой ошибки
---> 18 mat = mat.reshape(1,64,64,3)
19 mat = mat / 255.
20 x = graph.get_tensor_by_name("input_x:0")
ValueError: cannot reshape array of size 30233088 into shape (1,64,64,3)
Комментарии:
1. размеры изменения формы должны иметь то же количество элементов, что и исходное измерение. В вашем случае — 64*64*3 != 30233088 и, следовательно, ошибка. В вашем случае вам может потребоваться обрезать изображение, а затем изменить его форму.