Python-Numpy Error: ValueError: Einstellung der ein array-element mit einer Sequenz

Ich versuche zu bauen, ein dataset ähnlich mnist.pkl.gz in theano logistic_sgd.py Umsetzung. Folgendes ist mein code-snippet.

import numpy as np
import csv
from PIL import Image
import gzip, cPickle
import theano
from theano import tensor as T

def load_dir_data(csv_file=""):
    print(" reading: %s" %csv_file)
    dataset=[]
    labels=[]

    cr=csv.reader(open(csv_file,"rb"))
    for row in cr:
        print row[0], row[1]
        try: 
            image=Image.open(row[0]+'.jpg').convert('LA') 
            pixels=[f[0] for f in list(image.getdata())]
            dataset.append(pixels)
            labels.append(row[1])
            del image 
        except: 
            print("image not found")
    ret_val=np.array(dataset,dtype=theano.config.floatX)
    return ret_val,np.array(labels).astype(float)   


def generate_pkl_file(csv_file=""):
    Data, y =load_dir_data(csv_file)
    train_set_x = Data[:1500]
    val_set_x = Data[1501:1750]
    test_set_x = Data[1751:1900]
    train_set_y = y[:1500]
    val_set_y = y[1501:1750]
    test_set_y = y[1751:1900]
    # Divided dataset into 3 parts. I had 2000 images.

    train_set = train_set_x, train_set_y
    val_set = val_set_x, val_set_y
    test_set = test_set_x, val_set_y

    dataset = [train_set, val_set, test_set]

    f = gzip.open('file.pkl.gz','wb')
    cPickle.dump(dataset, f, protocol=2)
    f.close()    


if __name__=='__main__':
    generate_pkl_file("trainLabels.csv") 

Fehlermeldung:
Traceback (most recent call last):

  File "convert_dataset_pkl_file.py", line 50, in <module>
    generate_pkl_file("trainLabels.csv") 
  File "convert_dataset_pkl_file.py", line 29, in generate_pkl_file
    Data, y =load_dir_data(csv_file)
  File "convert_dataset_pkl_file.py", line 24, in load_dir_data
    ret_val=np.array(dataset,dtype=theano.config.floatX)
ValueError: setting an array element with a sequence.

csv-Datei enthält zwei Felder.. Bild-name, Klassifizierung label
wenn ausgeführt wird, das in python-interpreter, es scheint zu funktionieren für mich.. wie folgt.. ich bekomme kein Fehlermeldung besagt, dass das setzen einer array-element mit einer Sequenz hier..

---------python-interpreter Ausgabe----------

image=Image.open('sample.jpg').convert('LA')
pixels=[f[0] for f in list(image.getdata())]
dataset=[]
dataset.append(pixels)
dataset.append(pixels)
dataset.append(pixels)
dataset.append(pixels)
dataset.append(pixels)
b=numpy.array(dataset,dtype=theano.config.floatX)
b
array([[ 2.,  0.,  0., ...,  0.,  0.,  0.],
       [ 2.,  0.,  0., ...,  0.,  0.,  0.],
       [ 2.,  0.,  0., ...,  0.,  0.,  0.],
       [ 2.,  0.,  0., ...,  0.,  0.,  0.],
       [ 2.,  0.,  0., ...,  0.,  0.,  0.]])

Obwohl ich bin mit demselben Satz von Anweisungen (logisch), wenn ich sample.py bekomme ich valueError: Einstellung der ein array-element mit einer Sequenz.. ich versuche, dieses Verhalten zu verstehen.. jede Hilfe wäre Super..

Bitte immer den vollständigen traceback-Fehler in deiner Frage.
Nicht Sag uns die Fehlermeldung. Zeigen Sie uns, wo es aufgetreten ist.
bearbeitet..ich habe versucht mit gdb. Aber es war kein stack
Was bedeutet dataset Aussehen - in beiden Fällen. Wir brauchen nicht alle Werte, aber genug, um zu sehen, ob es einen Unterschied gibt.
Bild,level Probe,2 10_left,0 10_right,0 13_left,0 13_right,0 15_left,1 15_right,2 16_left,4 16_right,4 csv-Datei mit nur zwei Einträge pro Zeile.., Wenn ein laden die Bilder einzeln in die Dolmetscher-und append-Pixel, die ich ausführen kann, np.array(dataset,dtype=theano.config.floatX).. Aber Nein, wenn ich es in Datei..

InformationsquelleAutor ssh99 | 2015-05-29

Schreibe einen Kommentar