MPSCNNConvolutionDescriptor neuronFilter устарел

В iOS 11.0 фильтр neuronFilter устарел у некоторых владельцев ConvolutionDesptors.

Я все еще использую это, но XCode уже жалуется на устаревание, и это из-за последнего аргумента:

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

К сожалению, текущие документы Apple ничего не говорят о том, как решить проблему. Аргументы "neuronFilter" должны быть удалены из вызова, но как мне их использовать?

Какие-либо предложения?

2 ответа

"Вы должны теперь реализовать семейство свертки" Во всяком случае, neuronType, neuronParameterA и neuronParameterB...

Процесс изменился, но не так сильно, я думаю, вы бы сделали это без особых проблем.

И да, neuronFilter полностью устарел.

Это новый путь:

декларация

class MPSCNNConvolutionDescriptor : NSObject

обзор

Вы используете объект MPSCNNConvolutionDescriptor для описания свойств ядра MPSCNNConvolution, таких как его размер, формат пикселя и режим кэша ЦП.

Не используйте MPSCNNNeuron (neuronFilter) вместо этого используйте MPSCNNKernel.

У тебя не плохой день!

Из того, что я мог видеть из сообщения об устаревании класса:

Этот метод устарел. Пожалуйста, используйте свойства neuronType, neuronParameterA и neuronParameterB, чтобы объединить нейрон со сверткой.

Для тех, кто отчаянно спотыкается здесь (как и я, но приведенное выше руководство довольно загадочно), способ установки фильтра нейронов нерекомендуемым (iOS11+) способом:

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

Это "документированы" в Swift версии изMPSNNNeuronDescriptorно не на Objective-C. Иди разберись.

Другие вопросы по тегам