Je suis très nouveau sur TensorFlow. J'ai essayé d'utiliser TensorFlow pour créer une fonction où je lui donne un vecteur avec 6 fonctions et récupère une étiquette.TensorFlow - Classification avec des milliers d'étiquettes
J'ai un ensemble de données d'apprentissage sous la forme de 6 caractéristiques et 1 étiquette. L'étiquette est dans la première colonne:
309,3,0,2,4,0,6
309,12,0,2,4,0,6
309,0,4,17,2,0,6
318,0,660,414,58,3,12
311,0,0,414,58,0,2
298,0,53,355,5,0,2
60,16,14,381,30,4,2
312,0,8,8,13,0,3
...
Je l'index des étiquettes qui est une liste de milliers et des milliers de noms:
309,Joe
318,Joey
311,Bruce
...
Comment puis-je créer un modèle et le train à l'aide TensorFlow pour pouvoir prédire l'étiquette, donné un vecteur sans la première colonne?
-
C'est ce que j'ai essayé:
from __future__ import print_function
import tflearn
name_count = sum(1 for line in open('../../names.csv')) # this comes out to 24260
# Load CSV file, indicate that the first column represents labels
from tflearn.data_utils import load_csv
data, labels = load_csv('../../data.csv', target_column=0,
categorical_labels=True, n_classes=name_count)
# Build neural network
net = tflearn.input_data(shape=[None, 6])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 2, activation='softmax')
net = tflearn.regression(net)
# Define model
model = tflearn.DNN(net)
# Start training (apply gradient descent algorithm)
model.fit(data, labels, n_epoch=10, batch_size=16, show_metric=True)
# Predict
pred = model.predict([[218,5,124,26,0,3]]) # 326
print("Name:", pred[0][1])
Il est basé sur https://github.com/tflearn/tflearn/blob/master/tutorials/intro/quickstart.md
Je reçois l'erreur:
ValueError: Cannot feed value of shape (16, 24260) for Tensor u'TargetsData/Y:0', which has shape '(?, 2)'
24260 est le nombre de lignes dans les noms. csv
Merci beaucoup!
Qu'avez-vous déjà essayé? Demandez-vous "comment fonctionne l'apprentissage supervisé?" ou "comment écrire du code pour faire un apprentissage supervisé avec tensorflow?" ou est-ce que vous vous souciez du nombre de classes que vous essayez de classer? Avez-vous regardé softmax hiérarchique? –
@RyanStout édité, merci! Étant donné que tous les exemples d'apprentissage supervisé que j'ai vu ont seulement environ 2 ou 3 étiquettes, je ne suis même pas sûr de la méthode que je devrais utiliser. Mais ma question est de savoir comment résoudre cela avec du code. –