Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将tf.Tensor转换为numpy数组,然后将其另存为中的图像,无需急于执行_Python_Tensorflow_Keras - Fatal编程技术网

Python 将tf.Tensor转换为numpy数组,然后将其另存为中的图像,无需急于执行

Python 将tf.Tensor转换为numpy数组,然后将其另存为中的图像,无需急于执行,python,tensorflow,keras,Python,Tensorflow,Keras,我的OC对于apple M1来说是一个大的sur,因此我的tensorflow版本是2.4,它是从官方的apple github repo()安装的。当我使用下面的代码时,我得到张量() 将tensorflow导入为tf 将tensorflow_hub导入为hub 从PIL导入图像 将numpy作为np导入 从tensorflow.python.compiler.mlcompute导入mlcompute 从tensorflow.python.framework.ops导入禁用执行 禁用\u渴望\

我的OC对于apple M1来说是一个大的sur,因此我的tensorflow版本是2.4,它是从官方的apple github repo()安装的。当我使用下面的代码时,我得到张量()

将tensorflow导入为tf
将tensorflow_hub导入为hub
从PIL导入图像
将numpy作为np导入
从tensorflow.python.compiler.mlcompute导入mlcompute
从tensorflow.python.framework.ops导入禁用执行
禁用\u渴望\u执行()
mlcompute.set_mlc_device(device_name='gpu')#可用选项有“cpu”、“gpu”和“any”。
tf.config.run_函数(False)
打印(tf.executing_急切地()
image=np.asarray(image.open('/Users/alex26/Downloads/face.jpg'))
image=tf.cast(image,tf.float32)
image=tf.展开(图像,0)
型号=轮毂。负载(“https://tfhub.dev/captain-pool/esrgan-tf2/1")
sr=模型(图像)#

如何从sr Tensor获取图像?

要从tensorflow Tensor创建numpy数组,可以使用“make_ndarray”:


make_ndarray
将原张量作为参数,因此必须首先将张量转换为原张量

proto_tensor=tf.make_tensor_proto(a)#将张量a转换为proto tensor

()

张量必须为if shape
(img\u height,img\u width,3)
3
如果要生成RGB图像(3个通道),请参阅以下代码,使用
PIL将numpy aaray转换为图像

要从numpy数组生成图像,可以使用
PIL
(Python图像库):

从PIL导入图像
将numpy作为np导入
img_w,img_h=200200

data=np.zero((img_h,img_w,3),dtype=np.uint8)如果您急切地执行它,它会起作用:

import tensorflow as tf
import numpy as np
import tensorflow_hub as hub

model = hub.load("https://tfhub.dev/captain-pool/esrgan-tf2/1")

x = np.random.rand(1, 224, 224, 3).astype(np.float32)

image = model(x)

然后可以使用保存生成的图像。您可能需要将结果乘以
255
,然后转换为
np.uint8
,才能使该函数正常工作,我不确定。

这是您正在考虑的老式方法吗

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    sess.run(sr)

这是什么?请在此包含重要信息。我甚至不能打开链接(域名被封锁)这个信息是大的,我会包括在这里,如果链接贝娄也不适合你。我不急于使用执行。为什么不使用?是的,我不能将张量类转换为numpy数组,这是主要问题。我试着用make_ndary,但没用。假设pastebin对你也不起作用,
make_ndarray
以原张量为参数,所以你必须先将张量转换成原张量,我在上面修改了这个。。。我试过了,但没有work@Ymka抱歉,缺少初始化。现在它说了什么?您可能希望
将tensorflow.compat.v1导入为tf
,而不是完全导入TF1。
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    sess.run(sr)