Я хочу получить класс python, который может загрузить модель tensorflow и реализовать inference.but, но я понятия не имею, как я могу вводить изображение с переменным размером изображения. :(Различные размеры изображений в тензорном потоке с batch_size = 1
?class ArtGenerater():
def __init__(self,model_path):
self.model_path = model_path
# vary shape?
self.x = tf.placeholder(tf.float32,shape=(1,512,512,3))
self.gen = model.resnet(self.x)
self.out = tf.saturate_cast(self.gen,tf.uint8)
self.sess = tf.Session()
file = tf.train.lastest_checkpoint(self.model_path)
saver = tf.train.Saver()
saver.restore(self.sess,file)
def pic(self,image_path):
img =np.asarray(Image.open(image_path)).astype(np.float32)
img = np.expand_dims(img,0)
output_t = self.sess.run(self.out,feed_dict={self.x:img})
return output_t
Теперь я просто использовать tf.placeholder(tf.float32,shape=(1,512,512,3))
, но мой образ имеют разные размеры (., например, 1000 * 900) .как я могу достигнуть этой функции спасибо
EDIT:. спасибо everyone.I решили решить проблему, используя x = tf.placeholder(tf.string) img = tf.image.decode_jpeg(x,channels=3)
, и это может обеспечить сеть (мой ConvNet включает в себя множество conv2d & conv2d_tranpose) с различным размером изображения. :)
Вы можете комбинировать их как jpeg-строки в тензорном потоке и использовать декодирование jpeg op для обеспечения равномерного размера –
хорошая идея. Большое спасибо, я постараюсь. –