[pytorch] csv转tensor,tensor转图片

该博客介绍了如何将CSV数据转换为PyTorch张量,并展示了将张量转换为PIL图像、在TensorBoard中展示以及保存为指定格式图片的流程。主要涉及数据处理和深度学习的辅助工具使用。
部署运行你感兴趣的模型镜像

csv转tensor

def csv_to_tensor(csvDate):
    df = pd.read_csv(csvDate)
    array = np.array(df)
    tensor = torch.tensor(array, dtype=torch.float64)
    return tensor

tensor转PIL

def tensor_to_PIL(tensor):
    unloader = transforms.ToPILImage()
    image = tensor.cpu().clone()
    image = image.squeeze(0)
    image = unloader(image)
    return image

在tensorboard中展示

def show_in_tensorboard(tensor):
    if tensor.dim() < 3:
        tensor = tensor.unsqueeze(0)
    writer = SummaryWriter("logs")
    writer.add_image("Tensor_img", tensor)
    writer.close()
    return tensor

保存为指定格式的图片

def save_as_img(tensor, img_name, img_type):
    tensor_to_PIL(tensor).save(img_name + '.' + img_type)

操作实例:

import numpy as np
import pandas as pd
import torch
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms

csvDateSet = './00000.csv'


def csv_to_tensor(csvDate):
    df = pd.read_csv(csvDate)
    array = np.array(df)
    tensor = torch.tensor(array, dtype=torch.float64)
    return tensor


def tensor_to_PIL(tensor):
    unloader = transforms.ToPILImage()
    image = tensor.cpu().clone()
    image = image.squeeze(0)
    image = unloader(image)
    return image


def show_in_tensorboard(tensor):
    if tensor.dim() < 3:
        tensor = tensor.unsqueeze(0)
    writer = SummaryWriter("logs")
    writer.add_image("Tensor_img", tensor)
    writer.close()
    return tensor


def save_as_img(tensor, img_name, img_type):
    tensor_to_PIL(tensor).save(img_name + '.' + img_type)


if __name__ == '__main__':
    my_tensor = csv_to_tensor(csvDateSet)
    save_as_img(my_tensor, 'example', 'jpg')
    my_tensor = show_in_tensorboard(my_tensor)

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 回答1: 在PyTorch中,可以将tensor对象存储为txt文件格式。首先,需要将tensor换为numpy数组,然后使用numpy的savetxt函数将数组保存至txt文件。下面是一个示例代码: ``` import torch import numpy as np # 创建一个随机的3x3 tensor对象 x = torch.randn(3, 3) # 将tensor对象换为numpy数组 x_np = x.numpy() # 将numpy数组保存至txt文件 np.savetxt('tensor.txt', x_np) ``` 以上代码首先创建了一个随机的3x3 tensor对象x,然后将它换为numpy数组x_np。最后利用numpy的savetxt函数将x_np保存至名为“tensor.txt”的txt文件中。 通过这种方式,我们可以将PyTorch中的tensor对象存储为txt文件,以便后续使用。当然,也可以使用其他的文件格式来保存tensor数据,比如csv、npy等。 ### 回答2: PyTorch是一个流行的深度学习框架,主要用于构建神经网络和进行深度学习任务。其中核心数据结构之一就是TensorTensor是高维数组,可以包含数字、字符串等类型的数据,而且支持大量的数学操作。在机器学习任务中,通常需要将Tensor保存到文件中,以备日后使用或分享。本文将介绍如何将PyTorch Tensor写进txt文件中。 第一步是创建需要保存的Tensor。例如: ``` import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) ``` 现在,我们可以将Tensor保存到txt文件中。需要使用Python内置的文件处理函数来打开文件并写入Tensor的值。同时,为了避免出现格式错误,可以将Tensor的值换为字符串格式。代码如下: ``` with open('tensor.txt', 'w') as f: for tensor_row in tensor: tensor_row_as_string = ' '.join([str(tensor_item) for tensor_item in tensor_row.tolist()]) f.write(tensor_row_as_string + '\n') ``` 在这段代码中,我们首先打开文件`tensor.txt`并用`with`语句管理上下文。然后遍历Tensor的每一行,将每个Tensor换为字符串并拼接成一行,最后写入文件里。 读取文件时,可以使用`numpy.loadtxt`函数或Python内置的文件处理函数来解析数据。例如,以下代码使用`numpy.loadtxt`函数读取了文件`tensor.txt`中的数据: ``` import numpy as np tensor_loaded = np.loadtxt('tensor.txt') ``` `tensor_loaded`现在已经是一个numpy数组了,我们可以将其换为PyTorch Tensor进行后续操作: ``` tensor_loaded = torch.from_numpy(tensor_loaded) ``` 总结起来,将PyTorch Tensor写进txt主要是将Tensor按照需要的格式换为字符串,然后写入txt文件中。读取txt文件时,需要确保解析出来的数据类型与存储的类型一致。 ### 回答3: 在PyTorch中,通过Tensor对象可以进行各种数学和逻辑操作。如果需要将Tensor数据写入到txt文件中,可以使用Python内置的文件操作进行实现。 具体实现步骤如下: 1. 将Tensor为numpy数组,可以使用Tensor对象的numpy()方法。 2. 将numpy数组为文本字符串,可以使用numpy库中的savetxt()方法。 3. 将文本字符串写入到txt文件中,通过Python内置的open()和write()方法实现。 下面给出一个示例代码: import torch import numpy as np # 生成一个4x4的张量 A = torch.rand(4,4) # 将张量为numpy数组 A_numpy = A.numpy() # 将numpy数组为文本字符串 A_str = np.array2string(A_numpy, separator=',', formatter={'float_kind':lambda x: "%.2f" % x}) # 将文本字符串写入到txt文件中 with open('tensor_data.txt', 'w') as f: f.write(A_str) 运行上述代码后,同级目录下会生成一个名为“tensor_data.txt”的文件。该文件中的内容即为换后的文本字符串,每个元素之间用逗号隔开,每一行数据表示每个张量元素在Tensor对象中对应的行和列。 需要注意的是,在将numpy数组为文本字符串时,可以使用不同的分隔符,如逗号、空格等,还可以调整浮点数的输出格式。此处使用的是逗号分隔符,并将浮点数保留两位小数。如果需要更多的格式调整,可以参考numpy savetxt()方法的文档说明。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼古拉斯喵呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值