本文整理汇总了C++中arma::Cube::slices方法的典型用法代码示例。如果您正苦于以下问题:C++ Cube::slices方法的具体用法?C++ Cube::slices怎么用?C++ Cube::slices使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类arma::Cube
的用法示例。
在下文中一共展示了Cube::slices方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FeedBackward
void FeedBackward(const arma::Cube<eT>& error)
{
delta = arma::zeros<arma::Cube<eT> >(inputLayer.InputActivation().n_rows,
inputLayer.InputActivation().n_cols,
inputLayer.InputActivation().n_slices);
for (size_t outputmap = 0; outputmap < inputLayer.OutputMaps(); outputmap++)
{
for (size_t inputmap = 0; inputmap < outputLayer.OutputMaps(); inputmap++)
{
arma::Cube<eT> errorSlices = error.slices(inputmap *
inputLayer.LayerSlices(), (inputmap * inputLayer.LayerSlices()) +
inputLayer.LayerSlices() - 1);
arma::Mat<eT> rotatedFilter;
Rotate180(weights.slice(
outputmap * outputLayer.OutputMaps() + inputmap), rotatedFilter);
arma::Cube<eT> output;
BackwardConvolutionRule::Convolution(errorSlices, rotatedFilter, output);
delta.slices((outputmap * inputLayer.LayerSlices()),
(outputmap * inputLayer.LayerSlices()) +
inputLayer.LayerSlices() - 1) += output;
}
}
}
示例2: Gradient
void Gradient(const arma::Cube<eT>& d, arma::Cube<eT>& g)
{
g = arma::zeros<arma::Cube<eT> >(weights.n_rows, weights.n_cols,
weights.n_slices);
for (size_t outMap = 0; outMap < outMaps; outMap++)
{
for (size_t inMap = 0, s = outMap; inMap < inMaps; inMap++, s += outMaps)
{
arma::Cube<eT> inputSlices = inputParameter.slices(inMap, inMap);
arma::Cube<eT> deltaSlices = d.slices(outMap, outMap);
arma::Cube<eT> output;
GradientConvolutionRule::Convolution(inputSlices, deltaSlices, output);
for (size_t i = 0; i < output.n_slices; i++)
g.slice(s) += output.slice(i);
}
}
}
示例3: FeedForward
void FeedForward(const arma::Cube<eT>& input)
{
for (size_t outputmap = 0; outputmap < outputLayer.OutputMaps(); outputmap++)
{
for (size_t inputmap = 0; inputmap < inputLayer.OutputMaps(); inputmap++)
{
arma::Cube<eT> inputSlices = input.slices(
inputmap * inputLayer.LayerSlices(),
(inputmap * inputLayer.LayerSlices()) +
inputLayer.LayerSlices() - 1);
arma::Cube<eT> output;
ForwardConvolutionRule::Convolution(inputSlices,
weights.slice(inputmap * outputLayer.OutputMaps() +
outputmap), output);
outputLayer.InputActivation().slices(
(outputmap * inputLayer.LayerSlices()),
(outputmap * inputLayer.LayerSlices()) +
inputLayer.LayerSlices() - 1) += output;
}
}
}
示例4: Element
const arma::Cube<eT> Element(arma::Cube<eT>& input, const size_t sliceNum)
{
return input.slices(sliceNum, sliceNum);
}