Bilinéaire suréchantillonner dans tensorflow?
Je veux faire un simple bilinéaire redimensionner (pas nécessairement par un facteur entier) dans TensorFlow. Par exemple, à partir d'une (32,3,64,64) tenseur, je voudrais un (32,3,96,96) tenseur, où chaque 64x64 a été remis à l'échelle par un facteur de 1,5 à l'aide de la méthode d'interpolation bilinéaire. Quelle est la meilleure façon de le faire?
Je voudrais ce à l'appui de facteurs arbitraires > 1, pas seulement 1,5 spécifiquement.
Remarque: l'opération sur chaque 64x64 serait la même chose que ce skimage.transform.rescale (scale=1.5, order=1)
n'.
Vous devez vous connecter pour publier un commentaire.
tf.image.resize_images devrait faire ce que vous avez besoin. Il accepte à la fois en 3d (image unique) et 4d (lot d'images) les tenseurs, avec une profondeur arbitraire (nombre de canaux). Ce qui devrait, espérons-le travail:
Interpolation bilinéaire est la valeur par défaut donc vous n'avez pas besoin de le spécifier. Vous pouvez également utiliser resize_bilinear directement.
Je dirais pas à utiliser les
tf.image.resize_*
fonctions comme ils souffrent d'un méchant bug qui ne pas être fixe.Un nouveau, ensemble différent de l'image de rééchantillonnage fonctions est apparemment dans le pipeline. En attendant, vous pouvez trouver quelques exemples sur le web sur la façon de le faire vous-même en utilisant par exemple transposée circonvolutions. Il est malheureusement beaucoup moins efficace que par voie de suréchantillonnage, mais correcte est mieux que rapide.
MODIFIER
Ils ont enfin corrigé ce bug dans TF 2.0:
Cette solution ne passe pas de gradient, ce qui est... un bug qui sera, nous l'espérons également obtenir fixe.
Keras prend en charge
'nearest'
et'bilinear'
interpolation maintenant avec tensorflow backend. De vérifier la la documentation. Mais la taille par défaut la valeur est, en effet, (2,2) ou int valeur, de sorte que dans ce cas, votre suréchantillonnage sera au moins le double.Ce code doit
Keras 2.2.3
ou au-dessus. Si vous utiliseztf.keras
, malheureusement, vous ne pouvez pas installer keras séparément, il est fourni dans le cadre de tensorflow de l'installation. Donc soit trouver letf
version ou installer la nightly build.pip3 install --upgrade tf-nightly