可以访问在 Azure 机器学习服务或 Azure 机器学习工作室中训练的神经网络的内部表示吗?
Possible to access the internal representation of a neural network trained in Azure Machine Learning Service or Azure Machine Learning Studio?
我正在与数据科学家合作,他们希望深入了解他们使用 Azure 机器学习中的可视化界面训练的神经网络模型 Studio/Service。是否可以转储并检查神经网络模型的内部表示?有没有一种方法可以让我编写代码来访问经过训练的神经网络的节点和权重,以便将网络可视化为图形结构?或者,如果 Azure 机器学习 Studio/Service 不支持此功能,我将不胜感激有关可能更适合此类分析的不同机器学习框架的建议。
我尝试过的事情:
- 训练模型输出 ILearnerDotNet (AML Studio) 或模型(AML 服务)。我寻找要拖到工作区的项目,我可以在其中编写自定义代码,例如 Execute Python Script。他们似乎接受数据集,但不接受 ILearnerDotNet/Model 作为输入。
- 我找不到有关 ILearnerDotNet/Model 接口的文档。
- 选择训练模型输出提供了另存为训练模型的选项。这将创建一个经过训练的模型对象,这将帮助我在其他地方引用经过训练的模型,但我没有找到使用它来了解其内部结构的方法。
我是 Azure 机器学习领域的新手,需要一些关于如何开始访问这些数据的帮助。
引自 Azure ML 考试参考:
By default, the architecture of neural networks is limited to a single
hidden layer with sigmoid as the activation function and softmax in
the last layer. You can change this in the properties of the model,
opening the Hidden layer specification dropdown list, and selecting a
Custom definition script. A text box will appear in which you will be
able to insert a Net# script. This script language allows you to
define neural networks architectures.
例如,如果你想创建一个两层网络,你可以输入以下代码。
input Picture [28, 28];
hidden H1 [200] from Picture all;
hidden H2 [200] from H1 all;
output Result [10] softmax from H2 all;
然而,使用 Net# 您将面临某些限制,因为它不接受正则化(既不接受 L2 也不接受 dropout)。此外,没有 ReLU 激活
由于它们在反向传播方面的优势,因此常用于深度学习。您不能修改随机梯度下降 (SGD) 的批量大小。除此之外,您不能使用其他优化算法。您可以使用带动量的 SGD,但不能使用 Adam 或 RMSprop 等其他方法。您不能定义递归或递归神经网络。
另一个很棒的工具是 CNTK(认知工具包),它允许您定义计算图并创建完全可定制的模型。
引用文档
It is a Microsoft open source deep learning toolkit. Like other deep
learning tools, CNTK is based on the construction of computational
graphs and their optimization using automatic differentiation. The
toolkit is highly optimized and scales efficiently (from CPU, to GPU,
to multiple machines). CNTK is also very portable and flexible; you
can use it with programming languages like Python, C#, or C++, but you
can also use a model description language called BrainScript.
我正在与数据科学家合作,他们希望深入了解他们使用 Azure 机器学习中的可视化界面训练的神经网络模型 Studio/Service。是否可以转储并检查神经网络模型的内部表示?有没有一种方法可以让我编写代码来访问经过训练的神经网络的节点和权重,以便将网络可视化为图形结构?或者,如果 Azure 机器学习 Studio/Service 不支持此功能,我将不胜感激有关可能更适合此类分析的不同机器学习框架的建议。
我尝试过的事情:
- 训练模型输出 ILearnerDotNet (AML Studio) 或模型(AML 服务)。我寻找要拖到工作区的项目,我可以在其中编写自定义代码,例如 Execute Python Script。他们似乎接受数据集,但不接受 ILearnerDotNet/Model 作为输入。
- 我找不到有关 ILearnerDotNet/Model 接口的文档。
- 选择训练模型输出提供了另存为训练模型的选项。这将创建一个经过训练的模型对象,这将帮助我在其他地方引用经过训练的模型,但我没有找到使用它来了解其内部结构的方法。
我是 Azure 机器学习领域的新手,需要一些关于如何开始访问这些数据的帮助。
引自 Azure ML 考试参考:
By default, the architecture of neural networks is limited to a single hidden layer with sigmoid as the activation function and softmax in the last layer. You can change this in the properties of the model, opening the Hidden layer specification dropdown list, and selecting a Custom definition script. A text box will appear in which you will be able to insert a Net# script. This script language allows you to define neural networks architectures.
例如,如果你想创建一个两层网络,你可以输入以下代码。
input Picture [28, 28];
hidden H1 [200] from Picture all;
hidden H2 [200] from H1 all;
output Result [10] softmax from H2 all;
然而,使用 Net# 您将面临某些限制,因为它不接受正则化(既不接受 L2 也不接受 dropout)。此外,没有 ReLU 激活 由于它们在反向传播方面的优势,因此常用于深度学习。您不能修改随机梯度下降 (SGD) 的批量大小。除此之外,您不能使用其他优化算法。您可以使用带动量的 SGD,但不能使用 Adam 或 RMSprop 等其他方法。您不能定义递归或递归神经网络。
另一个很棒的工具是 CNTK(认知工具包),它允许您定义计算图并创建完全可定制的模型。 引用文档
It is a Microsoft open source deep learning toolkit. Like other deep learning tools, CNTK is based on the construction of computational graphs and their optimization using automatic differentiation. The toolkit is highly optimized and scales efficiently (from CPU, to GPU, to multiple machines). CNTK is also very portable and flexible; you can use it with programming languages like Python, C#, or C++, but you can also use a model description language called BrainScript.