0

在 iOS 11.0 中,一些 ConvolutionDespriptors 不推荐使用神经元过滤器。

我仍在使用它,但 Xcode 已经抱怨弃用,这是由于最后一个参数:

  let desc = MPSCNNConvolutionDescriptor(kernelWidth: kernel.0,
                                     kernelHeight: kernel.1,
                                     inputFeatureChannels: inChannels,
                                     outputFeatureChannels: outChannels,
                                     neuronFilter: activation)

不幸的是,当前的 Apple 文档没有说明如何解决该问题。“neuronFilter”参数需要从调用中删除,但我该如何使用它呢?

有什么建议么 ?

4

3 回答 3

1

“你现在必须实现卷积系列”无论如何,neuronType、neuronParameterA 和 neuronParameterB...

过程发生了变化,但变化不大,我认为您会毫不费力地做到这一点。

是的,neuronFilter 已完全弃用。

在此处输入图像描述

这是新的方法:

宣言

class MPSCNNConvolutionDescriptor : NSObject

概述

您使用MPSCNNConvolutionDescriptor对象来描述 MPSCNNConvolution 内核的属性,例如其大小、像素格式和 CPU 缓存模式。

不要使用MPSCNNNeuron (neuronFilter) 而是使用MPSCNNKernel

你有一个美好的一天!

于 2019-03-01T09:28:03.103 回答
0

从我从类弃用消息中可以看到:

此方法已弃用。请使用神经元类型、神经元参数A和神经元参数B属性来融合神经元和卷积。

于 2019-03-01T08:47:27.997 回答
0

对于任何在这里拼命绊倒的人(就像我一样,但上面的指导非常神秘),以非弃用(iOS11+)方式设置神经元过滤器的方法是:

MPSCNNConvolutionDescriptor *d = [MPSCNNConvolutionDescriptor cnnConvolutionDescriptorWithKernelWidth:w kernelHeight:h inputFeatureChannels:i outputFeatureChannels:o];
[d setFusedNeuronDescriptor:[MPSNNNeuronDescriptor cnnNeuronDescriptorWithType:MPSCNNNeuronTypeReLU a:0]];

它在Swift 版本中被“记录” ,MPSNNNeuronDescriptor但在 Objective-C 中没有。去搞清楚。

于 2020-04-05T09:48:41.133 回答