1. ホーム
  2. python

[解決済み】TypeError: 非反復可能なNoneTypeオブジェクトをアンパックできない

2022-01-26 04:28:29

質問

この質問は以前にもありましたが、私のはうまくいかないようです。

import numpy as np


def load_dataset():
    def download(filename, source="http://yaan.lecun.com/exdb/mnist/"):
        print ("Downloading ",filename)
        import urllib
        urllib.urlretrieve(source+filename,filename)

    import gzip
    
    def load_mnist_images(filename):
        if not os.path.exists(filename):
            download(filename)
        with gzip.open(filename,"rb") as f:
            data=np.frombuffer(f.read(), np.uint8, offset=16)
            
            data = data.reshape(-1,1,28,28)
            
            return data/np.float32(256)

        def load_mnist_labels(filename):
            if not os.path.exists(filename):
                download(filename)
            with gzip.open(filename,"rb") as f:
                data = np.frombuffer(f.read(), np.uint8, offset=8)
            return data

        X_train = load_mnist_images("train-images-idx3-ubyte.gz")
        y_train = load_mnist_labels("train-labels-idx1-ubyte.gz")
        X_test = load_mnist_images("t10k-images-idx3-ubyte.gz")
        y_test = load_mnist_labels("t10k-labels-idx1-ubyte.gz")

        return X_train, y_train, X_test, y_test


X_train, y_train, X_test, y_test = load_dataset()


import matplotlib
matplotlib.use("TkAgg")

import matplotlib.pyplot as plt
plt.show(plt.imshow(X_train[3][0]))

これは私が得ているエラーです。

Traceback (most recent call last):
  File "C:\Users\nehad\Desktop\Neha\Non-School\Python\Handwritten Digits 
Recognition.py", line 38, in <module>
    X_train, y_train, X_test, y_test = load_dataset()
TypeError: cannot unpack non-iterable NoneType object

機械学習は初めてです。何か簡単なことを見逃していませんか?私は学校の科学展覧会のために手書きの数字認識のプロジェクトに挑戦しています。

どのように解決するのですか?

私は、あなたの X_train, y_train, X_test, y_test の内部で定義されています。 load_mnist_images 関数では定義されないので load_dataset 関数を使用します。

から5行のインデントを解除する必要があります。 X_train = ... から return X_train, ... と入力すれば、うまくいくかもしれません。