Saltar al contenido

¿Convertir el marco de datos de Pandas en tensor de PyTorch?

Después de buscar en diferentes repositorios y páginas al terminar nos hemos encontrado la respuesta que te enseñamos más adelante.

Solución:

Me refiero a la pregunta en el título, ya que en realidad no ha especificado nada más en el texto, así que simplemente convierta el DataFrame en un tensor de PyTorch.

Sin información sobre sus datos, solo estoy tomando valores flotantes como objetivos de ejemplo aquí.

¿Convertir el marco de datos de Pandas en tensor de PyTorch?

import pandas as pd
import torch
import random

# creating dummy targets (float values)
targets_data = [random.random() for i in range(10)]

# creating DataFrame from targets_data
targets_df = pd.DataFrame(data=targets_data)
targets_df.columns = ['targets']

# creating tensor from targets_df 
torch_tensor = torch.tensor(targets_df['targets'].values)

# printing out result
print(torch_tensor)

Producción:

tensor([ 0.5827,  0.5881,  0.1543,  0.6815,  0.9400,  0.8683,  0.4289,
         0.5940,  0.6438,  0.7514], dtype=torch.float64)

Probado con Pytorch 0.4.0.

Espero que esto ayude, si tiene más preguntas, solo pregunte. 🙂

Tal vez intente esto para ver si puede solucionar su problema (según su código de muestra).

train_target = torch.tensor(train['Target'].values.astype(np.float32))
train = torch.tensor(train.drop('Target', axis = 1).values.astype(np.float32)) 
train_tensor = data_utils.TensorDataset(train, train_target) 
train_loader = data_utils.DataLoader(dataset = train_tensor, batch_size = batch_size, shuffle = True)

Puede usar las funciones siguientes para convertir cualquier marco de datos o serie de pandas en un tensor de pytorch

import pandas as pd
import torch

# determine the supported device
def get_device():
    if torch.cuda.is_available():
        device = torch.device('cuda:0')
    else:
        device = torch.device('cpu') # don't have GPU 
    return device

# convert a df to tensor to be used in pytorch
def df_to_tensor(df):
    device = get_device()
    return torch.from_numpy(df.values).float().to(device)

df_tensor = df_to_tensor(df)
series_tensor = df_to_tensor(series)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *