web-dev-qa-db-fra.com

Conversion de la structure de données Pandas en objet tenseur TensorFlow

Je ne connais pas encore Python, Machine Learning et TensorFlow, mais je fais de mon mieux pour me lancer droit dans la tête. Je pourrais utiliser de l'aide si.

Mes données sont actuellement dans un cadre de données Pandas. Comment puis-je convertir ceci en objet TensorFlow? J'ai essayé

dataVar_tensor = tf.constant(dataVar)
depth_tensor = tf.constant(depth)

Mais je reçois des erreurs [15780 rows x 9 columns] - got shape [15780, 9], but wanted [].

Je suis sûr que la question est probablement simple, mais je pourrais vraiment utiliser l'aide.

Merci beaucoup

ps. J'exécute tensorflow 0.12 avec Anaconda Python 3.5 sur Windows 10 

14
jlt199

Je pense que je l'ai! :RÉ

J'ai converti mon cadre de données Pandas en tableau Numpy à l'aide de .as_matrix ()

Maintenant, en utilisant 

dataVar_tensor = tf.constant(dataVar, dtype = tf.float32, shape=[15780,9])
depth_tensor = tf.constant(depth, 'float32',shape=[15780,1])

semble fonctionner. Je ne peux pas dire que ça le soit définitivement parce que j'ai d'autres obstacles à surmonter pour que mon code fonctionne, mais j'espère que c'est un pas dans la bonne direction. Merci pour votre aide

Soit dit en passant, je vais continuer à essayer de faire fonctionner le didacticiel sur mes propres données dans ma question suivante/ Didacticiel Conversion de TensorFlow pour travailler avec mes propres données

7
jlt199

Ce qui suit fonctionne facilement en fonction des données d'entrée du tableau numpy:

import tensorflow as tf
import numpy as np
a = np.array([1,2,3])
with tf.Session() as sess:
    tf.global_variables_initializer().run()

    dataVar = tf.constant(a)
    print(dataVar.eval())

-> [1 2 3]

N'oubliez pas de démarrer les objets session et run() ou eval() de votre tenseur pour voir son contenu; sinon, il vous donnera simplement sa description générique.

Je suppose que puisque vos données sont dans le DataFrame plutôt que dans un simple tableau, vous devez essayer le shapeparamètre de tf.constant(), que vous ne spécifiez pas actuellement, afin de l'aider à comprendre la dimensionnalité du DataFrame traiter avec ses indices, etc.? 

3
VS_FF

voici une solution que j'ai trouvée qui fonctionne sur google colab, devrait probablement fonctionner aussi sur une machine locale 

import pandas as pd
import tensorflow as tf
#Read the file to a pandas object
data=pd.read_csv('filedir')
#convert the pandas object to a tensor
data=tf.convert_to_tensor(data)
type(data)

Cela doit imprimer quelque chose comme

tensorflow.python.framework.ops.Tensor

J'espère que cela t'aides :)

1
Thedarknight

hottbox.pdtools.utils (les outils d’intégration Pandas de l’API HOTTBOX) fournit les fonctions

   pd_to_tensor(df[, keep_index])
   tensor_to_pd(tensor[, col_name])

pour la conversion dans les deux sens.

0
StefanQ