用' lr_utils'安装问题在python中

时间:2018-03-16 01:39:49

标签: python deep-learning dataset anaconda conda

我正在尝试通过Andrew N.G.博士(斯坦福大学)的DeepLearning任务[KafkaUtils.createDirectStream[String, String]( ssc, PreferConsistent, Subscribe[String, String](topics, kafkaParam) ).map(_.value()) 完成一些作业]。

当我在Coursera平台上尝试分配时,一切正常,但是,当我尝试在我的本地机器上执行相同的deeplearning.ai时,它会给我一个错误,

  

imports

我尝试通过安装ModuleNotFoundError: No module named 'lr_utils'来解决问题,但无济于事。

网上没有提到这个模块(让我感到有些惊讶),现在我开始怀疑这是lr_utils专有的?

或者我们可以用其他任何方式解决这个问题!

13 个答案:

答案 0 :(得分:7)

" lr_utils"不是官方图书馆或类似的东西。 " lr_utils"的目的是获取课程所需的数据集。

  1. 选项(对我不起作用):go to this page and there is a python code for downloading dataset and creating "lr_utils"

    • 我从提供的网址中获取数据时出现问题(但至少你可以尝试运行它,也许它会起作用)
  2. 选项(对我有用):在评论中(在同一页面1),有手动下载数据集和" lr_utils.py"的链接,所以这里是:

答案 1 :(得分:4)

我解决此问题的方法是:

  1. 点击文件->打开->您将看到 lr_utils.py 文件(是否有课程的付费/免费版本。)。 / li>
  2. 在Jupyter Notebooks中打开 lr_utils.py 文件,然后单击文件->下载(将其存储在您自己的文件夹中),然后重新运行模块导入。它将像魔术一样工作。
  3. 我对数据集文件夹执行了相同的过程。

答案 2 :(得分:2)

从以上答案中下载数据集。

并使用此代码(比上面的代码更好,因为使用后它会关闭文件):

def load_dataset():
    with h5py.File('datasets/train_catvnoncat.h5', "r") as train_dataset:
        train_set_x_orig = np.array(train_dataset["train_set_x"][:])
        train_set_y_orig = np.array(train_dataset["train_set_y"][:])

    with h5py.File('datasets/test_catvnoncat.h5', "r") as test_dataset:
        test_set_x_orig = np.array(test_dataset["test_set_x"][:])
        test_set_y_orig = np.array(test_dataset["test_set_y"][:])
        classes = np.array(test_dataset["list_classes"][:])

    train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
    test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))

    return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

答案 3 :(得分:2)

根据上述答案,lr_utils是深度学习课程的一部分,并且是用于下载数据集的实用程序。它应该可以轻松地与课程的付费版本一起使用,但是如果您“失去”访问它,我注意到这个github项目包含lr_utils.py以及一些数据集

https://github.com/andersy005/deep-learning-specialization-coursera/tree/master/01-Neural-Networks-and-Deep-Learning/week2/Programming-Assignments

注意: 当我查看中文网站链接时,它们不起作用。也许存储文件的服务器已过期。我确实看到这个github项目虽然有一些数据集以及lr_utils文件。

答案 4 :(得分:2)

我可以直接从Coursera页面下载数据集。

打开Coursera笔记本后,转到文件->打开,将显示以下窗口: {{3}}

在这里显示笔记本和数据集,您可以转到数据集文件夹并下载分配所需的数据。软件包lr_utils.py也可以下载。

答案 5 :(得分:2)

您可以直接在此处下载训练和测试数据集:https://github.com/berkayalan/Deep-Learning/tree/master/datasets

而且你需要在开头加上这段代码:

    import numpy as np
    import h5py
    import os      

def load_dataset():
    train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r")
    train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
    train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels

    test_dataset = h5py.File('datasets/test_catvnoncat.h5', "r")
    test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
    test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels

    classes = np.array(test_dataset["list_classes"][:]) # the list of classes
    
    train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
    test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))
    
    return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

答案 6 :(得分:1)

您将可以通过转到第一个任务(即第一个任务)找到目录结构中的任务所需的lr_utils.py和所有其他.py文件(以及其中的代码)。带有numpy的Python Basics),无论您是否是付费用户,您都可以随时访问它,然后点击上方菜单栏中的“打开”按钮。

然后,您可以将模块的代码直接包含在代码中。

答案 7 :(得分:1)

下面是您的代码,只需保存名为“ lr_utils.py”的文件,即可使用它。

import numpy as np
import h5py
def load_dataset():
train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r")
train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels
test_dataset = h5py.File('datasets/test_catvnoncat.h5', "r")
test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels
classes = np.array(test_dataset["list_classes"][:]) # the list of classes
train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))
return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

如果您的代码文件找不到您新创建的lr_utils.py文件,只需编写以下代码:

import sys
sys.path.append("full path of the directory where you saved Ir_utils.py file")

答案 8 :(得分:1)

我遇到了类似的问题,我已按照以下步骤操作:

1.导入以下库

import numpy as np
import matplotlib.pyplot as plt
import h5py
import scipy
from PIL import Image
from scipy import ndimage

2.从以下任一链接下载 train_catvnoncat.h5 和 test_catvnoncat.h5:

[https://github.com/berkayalan/Neural-Networks-and-Deep-Learning/tree/master/datasets] 要么 [https://github.com/JudasDie/deeplearning.ai/tree/master/Improving%20Deep%20Neural%20Networks/Week1/Regularization/datasets]

3.创建一个名为 datasets 的文件夹并将这两个文件粘贴到该文件夹​​中。

[注意:datasets文件夹和你的源代码文件应该在同一个目录]

4.运行以下代码

import numpy as np import matplotlib.pyplot as plt import h5py import scipy from PIL import Image from scipy import ndimage

5.加载数据:

def load_dataset():

    with h5py.File('datasets1/train_catvnoncat.h5', "r") as train_dataset:
        train_set_x_orig = np.array(train_dataset["train_set_x"][:])
        train_set_y_orig = np.array(train_dataset["train_set_y"][:])

    with h5py.File('datasets1/test_catvnoncat.h5', "r") as test_dataset:
        test_set_x_orig = np.array(test_dataset["test_set_x"][:])
        test_set_y_orig = np.array(test_dataset["test_set_y"][:])
        classes = np.array(test_dataset["list_classes"][:])

    train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
    test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))

    return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

检查数据集

def load_dataset(): with h5py.File('datasets1/train_catvnoncat.h5', "r") as train_dataset: train_set_x_orig = np.array(train_dataset["train_set_x"][:]) train_set_y_orig = np.array(train_dataset["train_set_y"][:]) with h5py.File('datasets1/test_catvnoncat.h5', "r") as test_dataset: test_set_x_orig = np.array(test_dataset["test_set_x"][:]) test_set_y_orig = np.array(test_dataset["test_set_y"][:]) classes = np.array(test_dataset["list_classes"][:]) train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0])) test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0])) return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

你的数据集已经准备好了,你可以检查train_set_x_orig、train_set_y变量的len。对于我的,它是 209 和 50

答案 9 :(得分:0)

  1. 这是从@ThinkBonobo获取数据集的方法: https://github.com/andersy005/deep-learning-specialization-coursera/tree/master/01-Neural-Networks-and-Deep-Learning/week2/Programming-Assignments/datasets

  2. 编写一个lr_utils.py文件,就像上面的答案@StationaryTraveller一样,将其放入任何sys.path()目录中。

  3. def load_dataset(): 使用h5py.File('datasets / train_catvnoncat.h5',“ r”)作为train_dataset:    ....

    !!!但是请确保删除'datasets /',因为现在数据文件的名称是train_catvnoncat.h5

  4. 重新启动内核,祝您好运。

答案 10 :(得分:0)

我可能会添加一些答案,您可以使用lr_utils脚本将文件保存在光盘上,并通过以下方式使用importlib util函数将其作为模块导入。

以下代码来自有关从外部文件到当前用户会话的导入功能的通用线程:

How to import a module given the full path?

### Source load_dataset() function from a file
# Specify a name (I think it can be whatever) and path to the lr_utils.py script locally on your PC: 
util_script = importlib.util.spec_from_file_location("utils function", "D:/analytics/Deep_Learning_AI/functions/lr_utils.py")

# Make a module
load_utils = importlib.util.module_from_spec(util_script)

# Execute it on the fly
util_script.loader.exec_module(load_utils)

# Load your function
load_utils.load_dataset()

# Then you can use your load_dataset() coming from above specified 'module' called load_utils
train_set_x_orig, train_set_y, test_set_x_orig, test_set_y, classes = load_utils.load_dataset()

# This could be a general way of calling different user specified modules so I did the same for the rest of the neural network function and put them into separate file to keep my script clean. 
# Just remember that Python treat it like a module so you need to prefix the function name with a 'module' name eg.:
# d = nnet_utils.model(train_set_x, train_set_y, test_set_x, test_set_y, num_iterations = 1000, learning_rate = 0.005, print_cost = True)

nnet_script = importlib.util.spec_from_file_location("utils function", "D:/analytics/Deep_Learning_AI/functions/lr_nnet.py")
nnet_utils = importlib.util.module_from_spec(nnet_script)
nnet_script.loader.exec_module(nnet_utils)

到目前为止,这是我从Python中的不同文件中获取函数/方法的最便捷方法。 我来自R背景,您只能调用一个行函数source()将外部脚本内容带入当前会话。

答案 11 :(得分:0)

以上答案没有帮助,某些链接已过期。

因此, lr_utils 不是pip库,而是与CourseEra网站位于同一笔记本中的文件。

您可以单击“打开”,它将打开资源管理器,您可以在其中下载要在其他环境中运行的所有内容。

(我在浏览器上使用了它。)

答案 12 :(得分:0)

这就是我的解决方法,我复制了lir_utils文件并将其粘贴到笔记本中,然后我通过压缩文件并解压缩来下载数据集。用下面的代码。注意:在Coursera Notebook上运行代码,并在目录中仅选择压缩文件进行下载。

!pip install zipfile36

zf = zipfile.ZipFile('datasets/train_catvnoncat_h5.zip', mode='w')

try:

    zf.write('datasets/train_catvnoncat.h5')

    zf.write('datasets/test_catvnoncat.h5')

finally:

    zf.close()