Как исправить AttributeError: у объекта 'module' нет атрибута 'function'? - PullRequest
0 голосов
/ 08 апреля 2019

Я совершенно новичок в Python, и в настоящее время я работаю над этой программой в онлайн-книге Майкла Нильсена «Нейронные сети и глубокое обучение», пока пытаюсь запустить готовый модуль с именем mnist_loader. py, функция с именем load_data_wrapper () внутри модуля не приписывается.

Ссылка на код находится здесь: https://github.com/mnielsen/neural-networks-and-deep-learning/blob/master/src/mnist_loader.py

Вот код для модуля, mnist_loader.py:

import cPickle

import gzip

import numpy as np

def load_data():
    f = gzip.open('../data/mnist.pkl.gz', 'rb')
    training_data, validation_data, test_data = cPickle.load(f)
    f.close()
    return (training_data, validation_data, test_data)

def load_data_wrapper():
    tr_d, va_d, te_d = load_data()
    training_inputs = [np.reshape(x, (784, 1)) for x in tr_d[0]]
    training_results = [vectorized_result(y) for y in tr_d[1]]
    training_data = zip(training_inputs, training_results)
    validation_inputs = [np.reshape(x, (784, 1)) for x in va_d[0]]
    validation_data = zip(validation_inputs, va_d[1])
    test_inputs = [np.reshape(x, (784, 1)) for x in te_d[0]]
    test_data = zip(test_inputs, te_d[1])
    return (training_data, validation_data, test_data)

def vectorized_result(j):
    e = np.zeros((10, 1))
    e[j] = 1.0
    return e

Пока я пытаюсь запустить следующий код:

>>> import mnist_loader
>>> training_data, validation_data, test_data = \
... mnist_loader.load_data_wrapper()

Переводчик показывает:

AttributeError: 'module' object has no attribute 'load_data_wrapper'

Я проверяю каталог, и модуль mnist_loader.py сам не имеет ошибок. Затем я попытался извлечь функцию load_data_wrapper и использовать ее сам по себе, используя:

from mnist_loader import load_data_wrapper 

и показывает:

ImportError: cannot import name load_data_wrapper

Я ожидаю, что код загрузит файл mnist.pkl.gz и выведет данные MNIST.

1 Ответ

0 голосов
/ 08 апреля 2019

Вам необходимо хранить его в том же каталоге, где хранится ваш файл, в который вы пытаетесь импортировать.

О, если вы используете JupyterLab, возможно, вам нужно сделать что-то вроде этого:

$ # Imports the workspace file `file_name.json`.
$ jupyter lab workspaces import file_name.json
Saved workspace: <workspaces-directory>/labworkspacesfoo-54d5.jupyterlab-workspace

Пункты 7.2 и 7.6 здесь: Руководство JupyterLab

...