首页 > 解决方案 > 如何修复 AttributeError:“模块”对象没有属性“功能”?

问题描述

我对 Python 完全陌生,我目前正在研究 Michael Nielsen 的在线书籍中的程序:“neural-networks-and-deep-learning”,同时我正在尝试运行一个名为 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 数据。

标签: pythonpython-2.7python-import

解决方案


您需要将其存储在存储文件的同一目录中,您可以在其中尝试导入。

哦,如果您使用的是 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 手册


推荐阅读