Вот код, который я часто использую для изменения размера изображений с помощью opencv:
import tensorflow as tf
import cv2
def resize_function(image, target_height, target_width):
img = cv2.resize(image, (target_height, target_width))
return image.astype(np.float32)
image = tf.numpy_function(
func=resize_function,
inp=[tf.cast(image, tf.uint8),resize_height, resize_width],
Tout=tf.float32)
tensenflow имеет tf.numpy_function для определения ваших пользовательских функций numpy. это преобразует ваши пользовательские функции в графики тензорного потока
, если от функции ожидается несколько выходов, измените как:
output_1, output_2, output_3 = tf.numpy_function(
func=compute_input_output,
inp=[inp_1, inp_2, inp_3,inp4],
Tout=[tf.float32,tf.float32,tf.float32])
Tout должен содержать список ожидаемых данных-типы выходов.