WARNING:tensorflow:AutoGraph could not transform xxx and will run it as-is 的一种解决思路
Posted MarToony|名角
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WARNING:tensorflow:AutoGraph could not transform xxx and will run it as-is 的一种解决思路相关的知识,希望对你有一定的参考价值。
警告内容:
WARNING:tensorflow:AutoGraph could not transform <bound method TensorflowDataset.load_and_preprocess_image of <__main__.TensorflowDataset object at 0x7fc8d36be3d0>> and will run it as-is.
Cause: mangled names are not yet supported
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
一般来说,警告可以被忽视。但是相关操作时比较重要的一环,因此不希望其出现任何问题。
不过百度、谷歌得到的解决方案并不尽人意。
结合自己的代码特征,考虑是因为私有方法格式的原因。
如下所示:
# 类中的内容
image_ds = path_ds.map(self.__load_and_preprocess_image, num_parallel_calls=tf.data.AUTOTUNE)
def __preprocess_image(self, image):
image = tf.image.decode_jpeg(image, channels=3)
image = tf.image.resize(image, self.initialMeta["presize"])
image /= 255.0 # normalize to [0,1] range
return image
def __load_and_preprocess_image(self, path):
image = tf.io.read_file(path)
return self.__preprocess_image(image)
最后,我放弃使用私有方法,消除了警告内容。
即:
image_ds = path_ds.map(self.load_and_preprocess_image, num_parallel_calls=tf.data.AUTOTUNE)
def preprocess_image(self, image):
image = tf.image.decode_jpeg(image, channels=3)
image = tf.image.resize(image, self.initialMeta["presize"])
image /= 255.0 # normalize to [0,1] range
return image
def load_and_preprocess_image(self, path):
image = tf.io.read_file(path)
return self.preprocess_image(image)
以上说明,tensorflow框架中的tf.dataAPI中的方法使用,可以比较稳定的在类中进行,但是涉及到私有方法时可能会出现一些问题,因此平时编写代码时应该努力这种写法。
以上是关于WARNING:tensorflow:AutoGraph could not transform xxx and will run it as-is 的一种解决思路的主要内容,如果未能解决你的问题,请参考以下文章