Yeah, i have checked the name of objective-c class conforming to the MLCustomLayer protocol matches the custom layer name described in the model. It's GridSampleLayer. And i implement the objective-c as shown below,
GridSampleLayer.h
#import <CoreML/MLCustomLayer.h>
#import <Foundation/Foundation.h>
#import <CoreML/CoreML.h>
@interface GridSampleLayer : NSObject<MLCustomLayer>
@end
GridSampleLayer.m
#import <Foundation/Foundation.h>
#import <CoreML/CoreML.h>
#import <CoreML/MLMultiArray.h>
#import <Vision/Vision.h>
#import "GridSampleLayer.h"
#import <Accelerate/Accelerate.h>
@implementation GridSampleLayer {
}
- (BOOL) evaluateOnCPUWithInputs:(NSArray<MLMultiArray *> *)inputs outputs:(NSArray<MLMultiArray *> *)outputs error:(NSError *__autoreleasing _Nullable *)error{
NSLog(@"get in cpu func");
......
......
}
- (instancetype) initWithParameterDictionary:(NSDictionary<NSString *,id> *)parameters error:(NSError *__autoreleasing _Nullable *)error{
self = [super init];
return self;
}
- (NSArray<NSArray<NSNumber *> * > *) outputShapesForInputShapes:(NSArray<NSArray<NSNumber *> *> *)inputShapes error:(NSError *__autoreleasing _Nullable *) error{
return inputShapes;
}
- (BOOL) setWeightData:(NSArray<NSData *> *)weights error:(NSError *__autoreleasing _Nullable *) error{
return true;
}
@end
Are there some problems?
Topic:
Programming Languages
SubTopic:
Swift
Tags: