标签: cntk

可以在macbook上安装CNTK吗?

可以在macbook上安装Microsoft CNTK吗?我有OS X El Capitan.https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-your-machine上的官方Microsoft文档不提供mac用户的任何信息.

谢谢

macos installation cntk

15
推荐指数
2
解决办法
6558
查看次数

Why are deep learning libraries so huge?

I've recently downloaded all packages from PyPI. One interesting observation was that of the Top-15 of the biggest packages, all execept one are deep learning packages:

我看了mxnet-cu90。它只有一个巨大的文件:libmxnet.so(936.7MB)。该文件包含什么内容?有什么办法可以让它变小吗?

我特别惊讶的是,这些库是如此之大,考虑到人们通常在 CUDA + cuDNN 之上使用它们,我认为这会完成繁重的工作。

作为比较,我查看了相关库,您也可以使用它们构建深度学习库:

  • numpy:6MB
  • 符号:6MB
  • pycuda:3.6MB
  • tensorflow-cpu:116MB(因​​此 GPU 版本需要多 241 MB 或大约 3 倍大小!)

python .so tensorflow mxnet cntk

11
推荐指数
1
解决办法
1670
查看次数

包裹CNTK应用程序

我已经阅读了Microsoft的OpenSource AI Library CNTK的文档,并且了解了如何创建和训练神经网络.我也理解,如何将训练结果"保存"到输出目录中.

但是,我没有看到将结果加载到神经网络中的方法,甚至更复杂:如何将训练好的神经网络包装到应用程序中,所以我实际上可以在生产中使用它而不是仅仅用于学术研究.

我想将我的神经网络集成到我的Python或C#应用程序中.我如何将其包装成这样,我如何创建一个输入和输出接口?

谢谢.

c# python neural-network cntk

10
推荐指数
1
解决办法
3235
查看次数

CNTK对LSTM中动态轴的抱怨

我正在尝试在CNTK中实现LSTM(使用Python)来对序列进行分类.

输入:

  • 特征是固定长度的数字序列(时间序列)

  • 标签是单热值的向量

网络:

input = input_variable(input_dim)
label = input_variable(num_output_classes)
h = Recurrence(LSTM(lstm_dim)) (input)
final_output = C.sequence.last(h)
z = Dense(num_output_classes) (final_output)
loss = C.cross_entropy_with_softmax(z, label)
Run Code Online (Sandbox Code Playgroud)

输出: 序列与标签匹配的概率

所有尺寸都是固定的,所以我认为我不需要任何动态轴,也没有指定任何尺寸.

然而,CNTK并不开心,我得到:

return cross_entropy_with_softmax(output_vector, target_vector, axis, name)
RuntimeError: Currently if an operand of a elementwise operation has any dynamic axes, those must match the dynamic axes of the other operands
Run Code Online (Sandbox Code Playgroud)

如果(根据一些例子)我用动态轴定义标签

label = input_variable(num_output_classes, dynamic_axes=[C.Axis.default_batch_axis()])
Run Code Online (Sandbox Code Playgroud)

它不再抱怨这一点,并进一步:

tf = np.split(training_features,num_minibatches)
tl = np.split(training_labels, num_minibatches)

for i in range(num_minibatches*num_passes): # multiply by the 
    features …
Run Code Online (Sandbox Code Playgroud)

python lstm cntk

10
推荐指数
1
解决办法
1207
查看次数

如何最好地处理图像分类中的"以上都不是"?

这似乎是一个基本问题,你们中的一些人必须有一个意见.我有一个在CNTK中实现的图像分类器,有48个类.如果图像与48个类中的任何一个都不匹配,那么我希望能够得出结论,它不属于这48种图像类型.我最初的想法很简单,如果最终的Softmax层的最高输出很低,我将能够得出结论,测试图像没有很好地匹配.虽然我偶尔会看到这种情况发生,但在大多数测试中,当传递"未知图像类型"时,Softmax仍然会产生非常高(和错误)的结果.但也许我的网络"过度适合",如果不是,我原来的想法会很好.你怎么看?有没有什么方法可以定义一个叫做'无上面'的第49类?

classification softmax cntk

9
推荐指数
2
解决办法
1662
查看次数

将CNTK virtualenv添加到Visual Studio Python项目中

在Windows上关注了Setup CNTK,并确认我可以从本地命令提示符运行CTNK.

C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34>.\Scripts\activate.bat
(root) C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34>set PATH=C:\local\CNTK-2-0-beta3-0-Windows-64bit-CPU-Only\cntk\cntk;%PATH%
(root) C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34>python -i
Python 3.4.4 |Continuum Analytics, Inc.| (default, Jun 15 2016, 15:25:08) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from cntk import Trainer
>>>
Run Code Online (Sandbox Code Playgroud)

我想使用Python Tools Visual Studio,所以我尝试通过"Add Existing Virtual Environment ..."将这个virtualenv添加到一个新的Python项目中,但是我得到了以下错误.

我们无法识别所选路径中的虚拟环境.

添加另一个现有的virtualenv工作正常.我感谢您的帮助.

python virtualenv visual-studio ptvs cntk

8
推荐指数
1
解决办法
4940
查看次数

微软放弃了CNTK吗?

我想知道CNTK是否死亡?GitHub上的发行说明日期为03/31/2019:“今天的2.7版本将是CNTK的最后一个主要版本。” 我花了几个月的时间使用CNTK开发软件,现在看来浪费时间和金钱。我已经在许多站点上搜索了答案,但仍然没有答案。stackoverflow是Microsoft推荐的站点之一。

cntk

8
推荐指数
1
解决办法
884
查看次数

cython_bbox.so:未定义符号:_Py_ZeroStruct

我尝试执行所有这些步骤,因为我希望在 linux 上使用不同版本的 python 3.5 来运行此示例中的代码 https://docs.microsoft.com/en-us/cognitive-toolkit/Object-Detection-using-Fast-卷积神经网络

如果你需要一个不同的版本,你可以按照以下步骤编译它:

git clone --recursive https://github.com/rbgirshick/fast-rcnn.git
cd $FRCN_ROOT/lib
make
python setup.py build_ext --inplace.
copy the generated cython_bbox and cython_nms binaries from 
$FRCN_ROOT/lib/utils to $CNTK_ROOT/Examples/Image/Detection/FastRCNN/fastRCNN/utils
**Error**
Traceback (most recent call last):
  File "C1_DrawBboxesOnImages.py", line 10, in <module>
    from cntk_helpers import *
  File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/cntk_helpers.py", line 13, in <module>
    from fastRCNN.nms import nms as nmsPython
  File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/__init__.py", line 7, in <module>
    from .imdb import imdb
  File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/imdb.py", line 16, in <module>
    from .utils.cython_bbox import bbox_overlaps
ImportError: /home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/utils/cython_bbox.so: …
Run Code Online (Sandbox Code Playgroud)

python python-3.x tensorflow cntk

6
推荐指数
1
解决办法
1万
查看次数

CNTK C#API:TrainingParameterScheduleDouble如何工作?

我试图了解TrainingParameterScheduleDoubleCNTK C#API中的工作方式。不幸的是,没有任何文件和之前的SO线程在这里似乎是不正确/不完整的,所以我试图反向工程的行为自己。谁能证实我的结论并回答我的遗留问题?

过载#1

TrainingParameterScheduleDouble(value, minibatchSize)
Run Code Online (Sandbox Code Playgroud)

这会将学习率设置为valueminibatchSize样本数量,而与传递给的实际小批量大小无关GetNextMinibatch。因此,使用minibatchSize: 1是指定每个样本学习率的简单方法。

在我看来,minibatchSize在这种情况下调用第二个参数非常容易引起误解,因为它与每个小批量的实际大小完全无关。我认为一个更好的名字应该是perNumSamples,或者我缺少什么?

过载#2

TrainingParameterScheduleDouble(value)
Run Code Online (Sandbox Code Playgroud)

这与minibatchSize: 0上面的设置相同,并且具有使用作为样本数量minibatchSize传递的“自然”效果GetNextMinibatch

因此,如果这样的GetNextMinibatch(64)new TrainingParameterScheduleDouble(0.001),学习速度将比 64倍new TrainingParameterScheduleDouble(0.001, 1)

过载#3

TrainingParameterScheduleDouble(schedule)
Run Code Online (Sandbox Code Playgroud)

使用“自然”的小批量大小,这会随时间改变学习率。因此,对于的时间表,(30, 0.321), (1, 0.123)前30个小批量的每次实际小批量学习率为0.321,此后为0.123。

过载#4

TrainingParameterScheduleDouble(schedule, epochSize)
Run Code Online (Sandbox Code Playgroud)

epochSize导致IsSweepBased()返回False而不是True,但是对学习率或其他任何因素都没有明显影响。这真是令人惊讶。任何人都可以epochSize在这种情况下解释其目的吗?

过载#5

TrainingParameterScheduleDouble(schedule, epochSize, minibatchSize)
Run Code Online (Sandbox Code Playgroud)

这是在不使用自然小批量大小的情况下随时间改变学习率的唯一方法。因此,(30, 0.321), (1, 0.123)with 的时间表minibatchSize: 1 …

.net c# machine-learning deep-learning cntk

6
推荐指数
0
解决办法
197
查看次数

CNTK“时间”功能到底如何工作?

通过本教程,我正在自学CNTK 。

有一个功能定义为

def linear_layer(input_var, output_dim):

    input_dim = input_var.shape[0]
    weight_param = C.parameter(shape=(input_dim, output_dim))
    bias_param = C.parameter(shape=(output_dim))

    mydict['w'], mydict['b'] = weight_param, bias_param

    return C.times(input_var, weight_param) + bias_param
Run Code Online (Sandbox Code Playgroud)

在线性代数中,将两个矩阵相乘时,只有内部尺寸匹配时才有意义。更明确地说,左侧的第二维必须等于右侧的第一维。

在此函数中,“ times”函数的第2个(右)参数为“ weight_param”,其第一个尺寸设置为与第一个(左)参数的第一个尺寸相同。这不会起作用,因为内部尺寸不匹配。

我不确定input_var是(nx 2)还是(2 xn),但是无论哪种方式都会导致错误。如果它是(nx 2),则weight_param是(nx 2)和(nx 2)*(nx 2)不应计算。如果为(2 xn),则weight_param为(2 x 2),并且不应计算(2 xn)*(2 x 2)。

但是以某种方式,它运行得很好。更令人困惑的是,如果我将函数的最后一行更改为

return C.times_transpose(input_var, weight_param) + bias_param
Run Code Online (Sandbox Code Playgroud)

它产生exaclty相同的结果。

那么这是怎么回事?为什么这样做?为什么转置版本产生相同的结果?

PS:我正在与cntk同时教自己使用python,因此这些观察结果可能由python引起的。让我知道。

python linear-algebra matrix-multiplication cntk

5
推荐指数
1
解决办法
181
查看次数