CNTK 抱怨功能未实现
CNTK complains about Feature Not Implemented
我在 Brainscript 中有以下网络。
BrainScriptNetworkBuilder = {
inputDim = 4
labelDim = 1
embDim = 20
hiddenDim = 40
model = Sequential (
EmbeddingLayer {embDim} : # embedding
RecurrentLSTMLayer {hiddenDim, goBackwards=false} : # LSTM
DenseLayer {labelDim} # output layer
)
# features
t = DynamicAxis{}
features = SparseInput {inputDim, tag="feature", dynamicAxis=t}
anomaly = Input {labelDim, tag="label"}
# model application
z = model (features)
zp = ReconcileDynamicAxis(z, anomaly)
# loss and metric
ce = CrossEntropyWithSoftmax (anomaly, zp)
errs = ClassificationError (anomaly, zp)
featureNodes = (features)
labelNodes = (anomaly)
criterionNodes = (ce)
evaluationNodes = (errs)
outputNodes = (z)
}
我的数据是这样的:
2 |Features -0.08169 -0.07840 -0.09580 -0.08748
2 |Features 0.00354 -0.00089 0.02832 0.00364
2 |Features -0.18999 -0.12783 -0.02612 0.00474
2 |Features 0.16097 0.11350 -0.01656 -0.05995
2 |Features 0.09638 0.07632 -0.04359 0.02183
2 |Features -0.12585 -0.08926 0.02879 -0.00414
2 |Features -0.10224 -0.18541 -0.16963 -0.05655
2 |Features 0.08327 0.15853 0.02869 -0.17020
2 |Features -0.25388 -0.25438 -0.08348 0.13638
2 |Features 0.20168 0.19566 -0.11165 -0.40739 |IsAnomaly 0
当我 运行 cntk 命令尝试训练模型时,出现以下异常。
发生异常:内部文件:Matrix.cpp 行:1323 函数:Microsoft::MSR::CNTK::Matrix::SetValue -> 功能未实现。
我错过了什么?
这里有一些建议:
首先,输入应与 reader 中描述的数据类型相匹配。所以特征变量不应该是稀疏的,因为数据中的输入是密集的。
其次,LSTM 将输出一系列输出,输入序列中的每个样本一个。除了最后一个,你需要忽略所有。
model = Sequential ( DenseLayer {embDim} : # embedding
RecurrentLSTMLayer {hiddenDim, goBackwards=false} : # LSTM
BS.Sequences.Last : #Use only the last in the LSTM sequence
DenseLayer {labelDim, activation=Sigmoid} # output layer
)
我在 Brainscript 中有以下网络。
BrainScriptNetworkBuilder = {
inputDim = 4
labelDim = 1
embDim = 20
hiddenDim = 40
model = Sequential (
EmbeddingLayer {embDim} : # embedding
RecurrentLSTMLayer {hiddenDim, goBackwards=false} : # LSTM
DenseLayer {labelDim} # output layer
)
# features
t = DynamicAxis{}
features = SparseInput {inputDim, tag="feature", dynamicAxis=t}
anomaly = Input {labelDim, tag="label"}
# model application
z = model (features)
zp = ReconcileDynamicAxis(z, anomaly)
# loss and metric
ce = CrossEntropyWithSoftmax (anomaly, zp)
errs = ClassificationError (anomaly, zp)
featureNodes = (features)
labelNodes = (anomaly)
criterionNodes = (ce)
evaluationNodes = (errs)
outputNodes = (z)
}
我的数据是这样的:
2 |Features -0.08169 -0.07840 -0.09580 -0.08748
2 |Features 0.00354 -0.00089 0.02832 0.00364
2 |Features -0.18999 -0.12783 -0.02612 0.00474
2 |Features 0.16097 0.11350 -0.01656 -0.05995
2 |Features 0.09638 0.07632 -0.04359 0.02183
2 |Features -0.12585 -0.08926 0.02879 -0.00414
2 |Features -0.10224 -0.18541 -0.16963 -0.05655
2 |Features 0.08327 0.15853 0.02869 -0.17020
2 |Features -0.25388 -0.25438 -0.08348 0.13638
2 |Features 0.20168 0.19566 -0.11165 -0.40739 |IsAnomaly 0
当我 运行 cntk 命令尝试训练模型时,出现以下异常。
发生异常:内部文件:Matrix.cpp 行:1323 函数:Microsoft::MSR::CNTK::Matrix::SetValue -> 功能未实现。
我错过了什么?
这里有一些建议:
首先,输入应与 reader 中描述的数据类型相匹配。所以特征变量不应该是稀疏的,因为数据中的输入是密集的。
其次,LSTM 将输出一系列输出,输入序列中的每个样本一个。除了最后一个,你需要忽略所有。
model = Sequential ( DenseLayer {embDim} : # embedding RecurrentLSTMLayer {hiddenDim, goBackwards=false} : # LSTM BS.Sequences.Last : #Use only the last in the LSTM sequence DenseLayer {labelDim, activation=Sigmoid} # output layer )