Comment faire pour mettre mon jeu de données dans une .pkl fichier dans le format exact et de la structure de données utilisée dans l' “mnist.pkl.gz”?
Je suis en train d'utiliser le Théano bibliothèque python pour faire quelques expériences avec une Profonde Conviction de Réseaux. J'ai utiliser le code à cette adresse: DBN code complet. Ce code d'utiliser le MNIST Manuscrite de la base de données. Ce fichier est déjà dans la saumure format.
C'est décousu dans:
- train_set
- valid_set
- test_set
Qui est plus unpickled:
- train_set_x, train_set_y = train_set
- valid_set_x, valid_set_y = valid_set
- test_set_x, test_set_y = test_set
Svp quelqu'un peut me donner le code qui génère ce jeu de données afin de créer mon propre?
Le DBN exemple, j'ai besoins d'utilisation des données dans ce format et je ne sais pas comment le faire.
si quelqu'un a des idées sur la façon de résoudre ce problème, s'il vous plaît dites-moi.
Voici mon code:
from datetime import datetime
import time
import os
from pprint import pprint
import numpy as np
import gzip, cPickle
import theano.tensor as T
from theano import function
os.system("cls")
filename = "completeData.txt"
f = open(filename,"r")
X = []
Y = []
for line in f:
line = line.strip('\n')
b = line.split(';')
b[0] = float(b[0])
b[1] = float(b[1])
b[2] = float(b[2])
b[3] = float(b[3])
b[4] = float(b[4])
b[5] = float(b[5])
b[6] = float(b[6])
b[7] = float(b[7])
b[8] = float(b[8])
b[9] = float(b[9])
b[10] = float(b[10])
b[11] = float(b[11])
b[12] = float(b[12])
b[13] = float(b[13])
b[14] = float(b[14])
b[15] = float(b[15])
b[17] = int(b[17])
X.append(b[:16])
Y.append(b[17])
Len = len(X);
X = np.asmatrix(X)
Y = np.asarray(Y)
sizes = [0.8, 0.1, 0.1]
arr_index = int(sizes[0]*Len)
arr_index2_start = arr_index + 1
arr_index2_end = arr_index + int(sizes[1]*Len)
arr_index3_start = arr_index2_start + 1
"""
train_set_x = np.array(X[:arr_index])
train_set_y = np.array(Y[:arr_index])
val_set_x = np.array(X[arr_index2_start:arr_index2_end])
val_set_y = np.array(Y[arr_index2_start:arr_index2_end])
test_set_x = np.array(X[arr_index3_start:])
test_set_y = np.array(X[arr_index3_start:])
train_set = train_set_x, train_set_y
val_set = val_set_x, val_set_y
test_set = test_set_x, test_set_y
"""
x = T.dmatrix('x')
z = x
t_mat = function([x],z)
y = T.dvector('y')
k = y
t_vec = function([y],k)
train_set_x = t_mat(X[:arr_index].T)
train_set_y = t_vec(Y[:arr_index])
val_set_x = t_mat(X[arr_index2_start:arr_index2_end].T)
val_set_y = t_vec(Y[arr_index2_start:arr_index2_end])
test_set_x = t_mat(X[arr_index3_start:].T)
test_set_y = t_vec(Y[arr_index3_start:])
train_set = train_set_x, train_set_y
val_set = val_set_x, val_set_y
test_set = test_set_x, test_set_y
dataset = [train_set, val_set, test_set]
f = gzip.open('..\..\..\data\dex.pkl.gz','wb')
cPickle.dump(dataset, f, protocol=-1)
f.close()
pprint(train_set_x.shape)
print('Finished\n')
Vous pouvez simplement mettre en œuvre Python à partir de la description ci-dessous.
OriginalL'auteur John Krit | 2014-09-29
Vous devez vous connecter pour publier un commentaire.
Un .pkl fichier n'est pas nécessaire d'adapter le code de la Théano tutoriel à vos propres données. Vous avez seulement besoin d'imiter leur structure de données.
Quick fix
Recherchez les lignes suivantes. C'est la ligne 303, DBN.py.
La remplacer par votre propre
train_set_x
ettrain_set_y
.S'adapter à votre entrée de données et le code que vous utilisez.
La même chose travaille pour cA.py, dA.py et SdA.py mais ils n'utilisent
train_set_x
.Chercher des endroits comme
n_ins=28 * 28
où mnist les tailles d'image sont codés en dur. Remplacer28 * 28
avec votre propre nombre de colonnes.Explication
C'est là où vous mettez vos données dans un format qui Théano pouvez travailler avec.
shared()
transforme un tableau numpy dans le Théano format conçu pour l'efficacité sur les Gpu.dtype='float64'
est prévu dans Théano tableaux.Plus de détails sur de base du tenseur de fonctionnalité.
.pkl fichier
L' .pkl fichier est un moyen de sauver votre structure de données.
Vous pouvez créer votre propre.
Plus de détails sur chargement et sauvegarde.
OriginalL'auteur xagg
La marinés fichier représente un n-uplet de 3 listes : l'ensemble de la formation, de la validation et de l'ensemble de test. (train, val, test)
OriginalL'auteur anh_ng8
Cela peut aider:
C'est la fonction que j'ai utilisé. Peut changer en fonction de votre fichier de détails.
OriginalL'auteur sinhayash