如何将tensorflow.python.framework.ops.EagerTensor转为TensorFlow或Torch Tensor?
问题解决方案
关于EagerTensor的转换问题
- TensorFlow场景:
tensorflow.python.framework.ops.EagerTensor本身就是TensorFlow即时执行模式下的原生Tensor类型,无需额外转换即可直接输入TensorFlow模型。 - PyTorch场景:要转成PyTorch Tensor,只需先将EagerTensor转为numpy数组,再用PyTorch的转换方法:
import torch # 假设t是你的函数返回的EagerTensor pt_tensor = torch.tensor(t.numpy())
优化图片转(1,28,28) Tensor的函数
你可以简化原函数步骤,直接生成目标维度的Tensor:
def imgprocessing(path): # 直接加载灰度图并指定目标尺寸 test_img = image.load_img(path, target_size=(28, 28), color_mode="grayscale") # 归一化并转为数组 test_img_array = image.img_to_array(test_img) / 255.0 # 添加batch维度,得到(1,28,28)的Tensor return tf.convert_to_tensor(test_img_array[None, ...], dtype=tf.float32)
- 用
color_mode="grayscale"直接加载灰度图,省去RGB转灰度的操作; test_img_array[None, ...]等价于tf.expand_dims(test_img_array, axis=0),可快速添加batch维度,最终输出Tensor的shape即为(1,28,28)。
内容的提问来源于stack exchange,提问作者BR BR
相关产品推荐
相关产品推荐

