将utils.py放在哪里

时间:2019-01-23 11:36:19

标签: python azure jupyter-notebook python-import

亲爱的我正在为MNIST数据集运行第一个Azure教程。

它表示utils.py应该与代码位于同一文件夹中。我试图在myconda环境中安装python-utils,但这并不能解决问题。使用pip install utils之后,我宁愿让它变得更糟:-(

这可能很简单,但我被困住了。
您将如何在运行以下命令的笔记本上执行此操作:

  1. 本地
  2. 在Azure笔记本中

我将Anaconda与运行Azure SDK和python 3.6的单独环境一起使用。

1 个答案:

答案 0 :(得分:1)

根据您的描述,我认为MNIST数据集的第一个Azure教程是Tutorial: Train an image classification model with Azure Machine Learning service

您可以通过本教程内的链接找到所有源代码,如下所示,位于here

  

获取笔记本

     

为方便起见,本教程以Jupyter notebook的形式提供。在Azure笔记本或您自己的Jupyter笔记本服务器中运行tutorials/img-classification-part1-training.ipynb笔记本。

这是utils.py的源代码。

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

import gzip
import numpy as np
import struct


# load compressed MNIST gz files and return numpy arrays
def load_data(filename, label=False):
    with gzip.open(filename) as gz:
        struct.unpack('I', gz.read(4))
        n_items = struct.unpack('>I', gz.read(4))
        if not label:
            n_rows = struct.unpack('>I', gz.read(4))[0]
            n_cols = struct.unpack('>I', gz.read(4))[0]
            res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8)
            res = res.reshape(n_items[0], n_rows * n_cols)
        else:
            res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8)
            res = res.reshape(n_items[0], 1)
    return res


# one-hot encode a 1-D array
def one_hot_encode(array, num_of_classes):
    return np.eye(num_of_classes)[array.reshape(-1)]

如果要将其导入到Azure Jupyter Notebook中,请参见下面的步骤。

  1. 移至项目页面,然后单击New按钮并选择Blank Fileenter image description here
  2. 然后将文件命名为utils.py,然后按Enter键。 enter image description here
  3. 选择文件,然后单击Edit Fileenter image description here
  4. 从教程Github存储库中复制并粘贴utils.py的内容,然后单击Save Fileenter image description here
  5. 创建一个笔记本来测试import utils,它可以工作。 enter image description here

# make sure utils.py is in the same directory as this code的含义如下图。

enter image description here