Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss16:14.07.2016

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss16:14.07.2016 [2016/07/14 15:08]
henrikfrenzel
ss16:14.07.2016 [2016/07/14 18:00] (aktuell)
victorbremer
Zeile 6: Zeile 6:
  
 == Labels neudefiniert um Datensätze anzugleichen == == Labels neudefiniert um Datensätze anzugleichen ==
 +<code python>
 +import cPickle as pickle
  
 +with open('​clean_symbols.p','​r'​) as f:
 + u=pickle.Unpickler(f)
 + data=u.load()
 +
 +zahlen=['​1','​2','​3','​4','​5','​6','​7','​8','​9','​0'​]
 +for i in range(15568):​
 + if data[2][i] in zahlen:
 + data[1][i]= int(data[2][i])
 + else:
 + data[1][i] +=10
 +
 +pickle.dump( data, open( "​symbols-newlabel.p",​ "​wb"​ ) )
 +</​code>​
 +
 +== Symbol-Datensatz formieren ==
 +<code python>
 +import cPickle as pickle
 +import numpy as np
 +
 +with open('​symbols-newlabel.p','​r'​) as f:
 + u=pickle.Unpickler(f)
 + data=u.load()
 +
 +data_neu=np.zeros(shape=data[0].shape,​dtype=np.float)
 +for i in range(data[0].shape[0]):​
 + data_neu[i]=data[0][i,:​]/​np.linalg.norm(data[0][i,:​])
 +
 +alldata_neu= (data_neu, data[1], data[2])
 +
 +pickle.dump( alldata_neu,​ open( "​symbols-newlabel-norm.p",​ "​wb"​ ) )
 +</​code>​
 +
 +== Zusammenfügen der Datensätze ==
 +<code python>
 +import cPickle as pickle
 +import scipy.io
 +import numpy as np
 +mat=scipy.io.loadmat('/​home/​mensch/​scikit_learn_data/​mldata/​mnist-original-norm.mat'​)
 +
 +with open('​symbols-newlabel-norm.p','​r'​) as f:
 + u=pickle.Unpickler(f)
 + data=u.load()
 +
 +mnist_data=mat['​data'​]
 +mnist_data= mnist_data.transpose()
 +mnist_label=mat['​label'​]
 +mnist_label=mnist_label.transpose()
 +mnist_label_int=np.zeros(shape=mnist_label.shape,​ dtype=np.int64)
 +mnist_label_string=np.zeros(shape=mnist_label.shape,​ dtype=object)
 +for i in range(mnist_label.shape[0]):​
 + mnist_label_int[i]= np.int64(mnist_label[i])
 + mnist_label_string[i]= np.string_(mnist_label[i])
 +
 +mnist_label_int = mnist_label_int.reshape((mnist_label_int.shape[0],​))
 +mnist_label_string = mnist_label_string.reshape((mnist_label_string.shape[0],​))
 +
 +zusammendaten=np.append(data[0],​ mnist_data, axis=0)
 +zusammenlabel= np.append(data[1],​ mnist_label_int,​ axis=0)
 +zusammenlabel2=np.append(data[2],​ mnist_label_string,​ axis=0)
 +alleszusammen = (zusammendaten,​ zusammenlabel,​ zusammenlabel2)
 +
 +
 +pickle.dump( alleszusammen,​ open( "/​home/​mensch/​scikit_learn_data/​mldata/​datensaetze-zsm.p",​ "​wb"​ ) )
 +</​code>​
 +Der Versuch die Daten mit Pickle zu speichern führte allerdings zu einem MemoryError. ​
 +Daher sind wir dazu übergegangen die Dateien in einem Numpy-Objekt zu speichern:
 +<code python>
 +alleszusammen= np.array((zusammendaten,​ zusammenlabel,​ zusammenlabel2))
 +np.save( "/​home/​mensch/​scikit_learn_data/​mldata/​datensaetze-zsm.p",​alleszusammen)
 +</​code>​
 +Die Datei wird dann als "​datensaetze-zsm.p.npy"​ gespeichert und kann mit dem Befehl ​
 +<code terminal>​
 +np.load("/​home/​mensch/​scikit_learn_data/​mldata/​datensaetze-zsm.p.npy"​)
 +</​code>​
 +geladen werden.
 +
 +Nach weiterer Bearbeitung hat sich rausgestellt,​ dass np.save() die Matrix der Daten falsch abspeichert. Nach dem Laden der Daten zeigt sich in der nullten Komponente das Format
 +<code terminal>​
 +(85568,)
 +</​code>​
 +obwohl es (85568,784) sein sollte. ​
 +Daher müssen die verschiedenen Teile des Datensatzes einzeln gespeichert werden. Also eine Datei für die Daten und eine andere für die Labels als int und als string.
ss16/14.07.2016.1468501719.txt.gz · Zuletzt geändert: 2016/07/14 15:08 von henrikfrenzel