提交 8140e000 编写于 作者: L liuqingcan

for optimize app size,change swiftProtobuf into oc protobuf

上级 09e0f909
......@@ -173,6 +173,7 @@
FCF2870321DFAEC7009A87DA /* Resources */,
1D801B9681ACFCA70D444D2C /* [CP] Embed Pods Frameworks */,
FCB40DFC21E0BC360075EC91 /* Embed Frameworks */,
5CE9D09AED829823E84812BA /* [CP] Copy Pods Resources */,
);
buildRules = (
);
......@@ -256,6 +257,25 @@
shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-MobileNetDemo/Pods-MobileNetDemo-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
5CE9D09AED829823E84812BA /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-MobileNetDemo/Pods-MobileNetDemo-resources.sh\"\n";
showEnvVarsInLog = 0;
};
B4EB56AEEFF6F3965DA3D2DA /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
......@@ -275,7 +295,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
......
......@@ -5,21 +5,25 @@ workspace 'paddle-mobile.xcworkspace'
target 'paddle-mobile-demo' do
project 'paddle-mobile-demo/paddle-mobile-demo.xcodeproj'
pod 'SwiftProtobuf', '~> 1.0'
# pod 'SwiftProtobuf', '~> 1.0'
pod 'Protobuf', '~> 3.0.0'
end
target 'paddle-mobile' do
project 'paddle-mobile/paddle-mobile.xcodeproj'
pod 'SwiftProtobuf', '~> 1.0'
# pod 'SwiftProtobuf', '~> 1.0'
pod 'Protobuf', '~> 3.0.0'
end
target 'paddle-mobile-unit-test' do
project 'paddle-mobile-unit-test/paddle-mobile-unit-test.xcodeproj'
pod 'SwiftProtobuf', '~> 1.0'
# pod 'SwiftProtobuf', '~> 1.0'
pod 'Protobuf', '~> 3.0.0'
end
target 'MobileNetDemo' do
project 'MobileNetDemo/MobileNetDemo.xcodeproj'
pod 'SwiftProtobuf', '~> 1.0'
# pod 'SwiftProtobuf', '~> 1.0'
pod 'Protobuf', '~> 3.0.0'
end
......@@ -329,6 +329,7 @@
FC039B7C20E11C550081E9F8 /* Resources */,
84ED590C0E51ABA9C34F51B5 /* [CP] Embed Pods Frameworks */,
FCEBEC2E20E1392000C0B14D /* Embed Frameworks */,
60B53DE619E3190F407982E5 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
......@@ -404,6 +405,25 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
60B53DE619E3190F407982E5 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-paddle-mobile-demo/Pods-paddle-mobile-demo-resources.sh\"\n";
showEnvVarsInLog = 0;
};
84ED590C0E51ABA9C34F51B5 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
......@@ -437,7 +457,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
......
......@@ -164,6 +164,7 @@
FCDFD403211D9185005AB38B /* Resources */,
53A2089068F9D64BB96D4322 /* [CP] Embed Pods Frameworks */,
FC91818F211DAE9B00B6F354 /* Embed Frameworks */,
106080405D3D9B620B5831BB /* [CP] Copy Pods Resources */,
);
buildRules = (
);
......@@ -227,6 +228,25 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
106080405D3D9B620B5831BB /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-paddle-mobile-unit-test/Pods-paddle-mobile-unit-test-resources.sh\"\n";
showEnvVarsInLog = 0;
};
53A2089068F9D64BB96D4322 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
......@@ -260,7 +280,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
......
......@@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
456BB7B421F5B356001474E2 /* Framework.pbobjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 456BB7B221F5B356001474E2 /* Framework.pbobjc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
456BB7B521F5B356001474E2 /* Framework.pbobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 456BB7B321F5B356001474E2 /* Framework.pbobjc.h */; settings = {ATTRIBUTES = (Public, ); }; };
4AA1EA862146625E00D0F791 /* BilinearInterpOp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AA1EA852146625E00D0F791 /* BilinearInterpOp.swift */; };
4AA1EA88214662BD00D0F791 /* BilinearInterpKernel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AA1EA87214662BD00D0F791 /* BilinearInterpKernel.swift */; };
4AA1EA8A2146631C00D0F791 /* BilinearInterp.metal in Sources */ = {isa = PBXBuildFile; fileRef = 4AA1EA892146631C00D0F791 /* BilinearInterp.metal */; };
......@@ -47,15 +49,14 @@
FC039BAB20E11CBC0081E9F8 /* Operator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BA620E11CBC0081E9F8 /* Operator.swift */; };
FC039BAC20E11CBC0081E9F8 /* BatchNormOp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BA720E11CBC0081E9F8 /* BatchNormOp.swift */; };
FC039BAD20E11CBC0081E9F8 /* ReluOp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BA820E11CBC0081E9F8 /* ReluOp.swift */; };
FC039BB820E11CC20081E9F8 /* framework.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BAF20E11CC20081E9F8 /* framework.pb.swift */; };
FC039BB920E11CC20081E9F8 /* Scope.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB020E11CC20081E9F8 /* Scope.swift */; };
FC039BBA20E11CC20081E9F8 /* TensorDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB120E11CC20081E9F8 /* TensorDesc.swift */; };
FC039BBB20E11CC20081E9F8 /* ProgramDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB220E11CC20081E9F8 /* ProgramDesc.swift */; };
FC039BBC20E11CC20081E9F8 /* VarDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB320E11CC20081E9F8 /* VarDesc.swift */; };
FC039BBB20E11CC20081E9F8 /* PMProgramDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB220E11CC20081E9F8 /* PMProgramDesc.swift */; };
FC039BBC20E11CC20081E9F8 /* PMVarDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB320E11CC20081E9F8 /* PMVarDesc.swift */; };
FC039BBD20E11CC20081E9F8 /* Program.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB420E11CC20081E9F8 /* Program.swift */; };
FC039BBE20E11CC20081E9F8 /* OpDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB520E11CC20081E9F8 /* OpDesc.swift */; };
FC039BBE20E11CC20081E9F8 /* PMOpDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB520E11CC20081E9F8 /* PMOpDesc.swift */; };
FC039BBF20E11CC20081E9F8 /* Attribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB620E11CC20081E9F8 /* Attribute.swift */; };
FC039BC020E11CC20081E9F8 /* BlockDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB720E11CC20081E9F8 /* BlockDesc.swift */; };
FC039BC020E11CC20081E9F8 /* PMBlockDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC039BB720E11CC20081E9F8 /* PMBlockDesc.swift */; };
FC0E2DBA20EE3B8D009C1FAC /* ReluKernel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC0E2DB920EE3B8D009C1FAC /* ReluKernel.swift */; };
FC0E2DBC20EE45FE009C1FAC /* ConvKernel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC0E2DBB20EE45FE009C1FAC /* ConvKernel.swift */; };
FC0E2DBE20EE460D009C1FAC /* BatchNormKernel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC0E2DBD20EE460D009C1FAC /* BatchNormKernel.swift */; };
......@@ -137,6 +138,8 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
456BB7B221F5B356001474E2 /* Framework.pbobjc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Framework.pbobjc.m; sourceTree = "<group>"; };
456BB7B321F5B356001474E2 /* Framework.pbobjc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Framework.pbobjc.h; sourceTree = "<group>"; };
4AA1EA852146625E00D0F791 /* BilinearInterpOp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BilinearInterpOp.swift; sourceTree = "<group>"; };
4AA1EA87214662BD00D0F791 /* BilinearInterpKernel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BilinearInterpKernel.swift; sourceTree = "<group>"; };
4AA1EA892146631C00D0F791 /* BilinearInterp.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = BilinearInterp.metal; sourceTree = "<group>"; };
......@@ -182,15 +185,14 @@
FC039BA620E11CBC0081E9F8 /* Operator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Operator.swift; sourceTree = "<group>"; };
FC039BA720E11CBC0081E9F8 /* BatchNormOp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatchNormOp.swift; sourceTree = "<group>"; };
FC039BA820E11CBC0081E9F8 /* ReluOp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReluOp.swift; sourceTree = "<group>"; };
FC039BAF20E11CC20081E9F8 /* framework.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = framework.pb.swift; sourceTree = "<group>"; };
FC039BB020E11CC20081E9F8 /* Scope.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Scope.swift; sourceTree = "<group>"; };
FC039BB120E11CC20081E9F8 /* TensorDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TensorDesc.swift; sourceTree = "<group>"; };
FC039BB220E11CC20081E9F8 /* ProgramDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgramDesc.swift; sourceTree = "<group>"; };
FC039BB320E11CC20081E9F8 /* VarDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VarDesc.swift; sourceTree = "<group>"; };
FC039BB220E11CC20081E9F8 /* PMProgramDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PMProgramDesc.swift; sourceTree = "<group>"; };
FC039BB320E11CC20081E9F8 /* PMVarDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PMVarDesc.swift; sourceTree = "<group>"; };
FC039BB420E11CC20081E9F8 /* Program.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Program.swift; sourceTree = "<group>"; };
FC039BB520E11CC20081E9F8 /* OpDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpDesc.swift; sourceTree = "<group>"; };
FC039BB520E11CC20081E9F8 /* PMOpDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PMOpDesc.swift; sourceTree = "<group>"; };
FC039BB620E11CC20081E9F8 /* Attribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attribute.swift; sourceTree = "<group>"; };
FC039BB720E11CC20081E9F8 /* BlockDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlockDesc.swift; sourceTree = "<group>"; };
FC039BB720E11CC20081E9F8 /* PMBlockDesc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PMBlockDesc.swift; sourceTree = "<group>"; };
FC0E2DB920EE3B8D009C1FAC /* ReluKernel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReluKernel.swift; sourceTree = "<group>"; };
FC0E2DBB20EE45FE009C1FAC /* ConvKernel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvKernel.swift; sourceTree = "<group>"; };
FC0E2DBD20EE460D009C1FAC /* BatchNormKernel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatchNormKernel.swift; sourceTree = "<group>"; };
......@@ -403,15 +405,16 @@
FC039BAE20E11CC20081E9F8 /* Program */ = {
isa = PBXGroup;
children = (
FC039BAF20E11CC20081E9F8 /* framework.pb.swift */,
456BB7B321F5B356001474E2 /* Framework.pbobjc.h */,
456BB7B221F5B356001474E2 /* Framework.pbobjc.m */,
FC039BB020E11CC20081E9F8 /* Scope.swift */,
FC039BB120E11CC20081E9F8 /* TensorDesc.swift */,
FC039BB220E11CC20081E9F8 /* ProgramDesc.swift */,
FC039BB320E11CC20081E9F8 /* VarDesc.swift */,
FC039BB220E11CC20081E9F8 /* PMProgramDesc.swift */,
FC039BB320E11CC20081E9F8 /* PMVarDesc.swift */,
FC039BB420E11CC20081E9F8 /* Program.swift */,
FC039BB520E11CC20081E9F8 /* OpDesc.swift */,
FC039BB520E11CC20081E9F8 /* PMOpDesc.swift */,
FC039BB620E11CC20081E9F8 /* Attribute.swift */,
FC039BB720E11CC20081E9F8 /* BlockDesc.swift */,
FC039BB720E11CC20081E9F8 /* PMBlockDesc.swift */,
FC4CB74A20F12C30007C0C6D /* ProgramOptimize.swift */,
);
path = Program;
......@@ -545,6 +548,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
456BB7B521F5B356001474E2 /* Framework.pbobjc.h in Headers */,
FC039B6F20E11C3C0081E9F8 /* paddle_mobile.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
......@@ -561,6 +565,7 @@
FC039B6620E11C3C0081E9F8 /* Frameworks */,
FC039B6720E11C3C0081E9F8 /* Headers */,
FC039B6820E11C3C0081E9F8 /* Resources */,
D5CF176900BA02D0A10F4313 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
......@@ -582,7 +587,7 @@
TargetAttributes = {
FC039B6920E11C3C0081E9F8 = {
CreatedOnToolsVersion = 9.3.1;
LastSwiftMigration = 0940;
LastSwiftMigration = 1000;
};
};
};
......@@ -629,7 +634,26 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
D5CF176900BA02D0A10F4313 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-paddle-mobile/Pods-paddle-mobile-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
......@@ -659,7 +683,7 @@
FCD04E7020F31B720007374F /* ReshapeKernel.swift in Sources */,
FCE3A1B12153E90F00C37CDE /* ElementwiseAddPreluKernel.inc.metal in Sources */,
FCD04E7220F343420007374F /* ConvAddOp.swift in Sources */,
FC039BBB20E11CC20081E9F8 /* ProgramDesc.swift in Sources */,
FC039BBB20E11CC20081E9F8 /* PMProgramDesc.swift in Sources */,
FCE3A1AB2153DE8C00C37CDE /* ConvAddAddPreluKernel.swift in Sources */,
FC9D037920E229E4000F735A /* OpParam.swift in Sources */,
FC3602CC2108819F00FACB58 /* PaddleMobileUnitTest.swift in Sources */,
......@@ -684,7 +708,6 @@
FC1B16B320EC9A4F00678B91 /* Kernels.metal in Sources */,
FC039BBA20E11CC20081E9F8 /* TensorDesc.swift in Sources */,
FC039BA020E11CB20081E9F8 /* Dim.swift in Sources */,
FC039BB820E11CC20081E9F8 /* framework.pb.swift in Sources */,
FC039B9920E11C9A0081E9F8 /* Types.swift in Sources */,
FC4CB74920F0B954007C0C6D /* ConvKernel.metal in Sources */,
FCA3A1632132A4AC00084FE5 /* ReshapeKernel.metal in Sources */,
......@@ -698,6 +721,7 @@
4AA1EAA2214912CD00D0F791 /* FlattenKernel.swift in Sources */,
4AA1EA982146666500D0F791 /* FlattenOp.swift in Sources */,
FC2BFCC221DF2F9100C262B2 /* GlobalConfig.swift in Sources */,
456BB7B421F5B356001474E2 /* Framework.pbobjc.m in Sources */,
FCBCCC652122FCD700D94F7E /* TransposeOp.swift in Sources */,
4AA1EAA6214B5F6800D0F791 /* Shape.metal in Sources */,
FCD04E6E20F31B4B0007374F /* ReshapeOp.swift in Sources */,
......@@ -711,7 +735,7 @@
FCE9D7B9214FAA4800B520C3 /* NMSFetchResultKernel.metal in Sources */,
FC039BAC20E11CBC0081E9F8 /* BatchNormOp.swift in Sources */,
FCBCCC6F2123097100D94F7E /* MulticlassNMSOp.swift in Sources */,
FC039BBC20E11CC20081E9F8 /* VarDesc.swift in Sources */,
FC039BBC20E11CC20081E9F8 /* PMVarDesc.swift in Sources */,
FC803BC5214CB8F00094B8E5 /* ConvAddPrelu.inc.metal in Sources */,
4AF928822135673D005B6C3A /* ConcatKernel.metal in Sources */,
FCBCCC632122FCC000D94F7E /* TransposeKernel.swift in Sources */,
......@@ -749,14 +773,14 @@
FCE3A1A92153DE5100C37CDE /* ConvAddAddPreluOp.swift in Sources */,
FC5163F620EF556E00636C28 /* Texture2DTo2DArrayKernel.swift in Sources */,
FCE3A1AD2153E8BA00C37CDE /* ElementwiseAddPreluOp.swift in Sources */,
FC039BC020E11CC20081E9F8 /* BlockDesc.swift in Sources */,
FC039BC020E11CC20081E9F8 /* PMBlockDesc.swift in Sources */,
FC803BC3214CB79C0094B8E5 /* ConvAddPreluKernel.metal in Sources */,
4AA1EA90214664CD00D0F791 /* Split.metal in Sources */,
FCD04E6820F315020007374F /* PoolKernel.swift in Sources */,
FC0226582138F38D00F395E2 /* PoolKernel.metal in Sources */,
FC039BAD20E11CBC0081E9F8 /* ReluOp.swift in Sources */,
FCBCCC572122F41300D94F7E /* DwConvBNReluOp.swift in Sources */,
FC039BBE20E11CC20081E9F8 /* OpDesc.swift in Sources */,
FC039BBE20E11CC20081E9F8 /* PMOpDesc.swift in Sources */,
FC9797C921D6101D00F2FD90 /* ResizeBilinearOp.swift in Sources */,
4AA1EA88214662BD00D0F791 /* BilinearInterpKernel.swift in Sources */,
FC2BFD4621DF685F00C262B2 /* Scale.swift in Sources */,
......
......@@ -13,7 +13,7 @@
limitations under the License. */
import Foundation
import SwiftProtobuf
//import SwiftProtobuf
public class Loader<P: PrecisionType> {
class ParaLoader {
......@@ -145,13 +145,17 @@ public class Loader<P: PrecisionType> {
public init(){}
func loadModelandParam(_ device:MTLDevice,_ modelData:Data, _ paraLoaderPointer:ParaLoaderWithPointer?, _ paraLoader:ParaLoader?) throws -> Program {
do {
let protoProgram = try PaddleMobile_Framework_Proto_ProgramDesc.init(
serializedData: modelData)
/// swift protobuf serialized Data to instance class
// let protoProgram = try PaddleMobile_Framework_Proto_ProgramDesc.init(
// serializedData: modelData)
/// oc protobuf serialized Data to instance class
let protoProgram = try ProgramDesc.init(data: (modelData as NSData) as Data)
let originProgramDesc = ProgramDesc.init(protoProgram: protoProgram)
let originProgramDesc = PMProgramDesc.init(protoProgram: protoProgram)
let programDesc = ProgramOptimize<P>.init().optimize(originProgramDesc: originProgramDesc)
// let programDesc = ProgramDesc.init(protoProgram: protoProgram)
// let programDesc = PMProgramDesc.init(protoProgram: protoProgram)
print(programDesc)
......
......@@ -27,7 +27,7 @@ class OpCreator<P: PrecisionType> {
}
}
func creat(device: MTLDevice, opDesc: OpDesc, scope: Scope, initContext: InitContext) throws -> Runable & InferShaperable {
func creat(device: MTLDevice, opDesc: PMOpDesc, scope: Scope, initContext: InitContext) throws -> Runable & InferShaperable {
guard let opCreator = opCreators[opDesc.type] else {
throw PaddleMobileError.opError(message: "there is no " + opDesc.type + " yet")
}
......@@ -39,7 +39,7 @@ class OpCreator<P: PrecisionType> {
}
}
let opCreators: [String : (MTLDevice, OpDesc, Scope, InitContext) throws -> Runable & InferShaperable] =
let opCreators: [String : (MTLDevice, PMOpDesc, Scope, InitContext) throws -> Runable & InferShaperable] =
[gConvType : ConvOp<P>.creat,
gBatchNormType : BatchNormOp<P>.creat,
gReluType : ReluOp<P>.creat,
......
......@@ -27,7 +27,7 @@ protocol OpParam {
func outputDesc() -> String
//associatedtype ParamPrecisionType: PrecisionType
init(opDesc: OpDesc, inScope: Scope) throws
init(opDesc: PMOpDesc, inScope: Scope) throws
static func getFirstTensor<VarType: Variant>(key: String, map: [String : [String]], from: Scope) throws -> VarType
static func inputX<VarType: Variant>(inputs: [String : [String]], from: Scope) throws -> VarType
static func inputBiase<VarType: Variant>(inputs: [String : [String]], from: Scope) throws -> VarType
......
......@@ -72,11 +72,11 @@ public class InitContext {
protocol Creator where Self: OperatorProtocol{
associatedtype OpType: OperatorProtocol & Runable & InferShaperable
static func creat(device: MTLDevice, opDesc: OpDesc, inScope: Scope, initContext: InitContext) throws -> OpType
static func creat(device: MTLDevice, opDesc: PMOpDesc, inScope: Scope, initContext: InitContext) throws -> OpType
}
extension Creator where Self: OperatorProtocol {
static func creat(device: MTLDevice, opDesc: OpDesc, inScope: Scope, initContext: InitContext) throws -> OpType {
static func creat(device: MTLDevice, opDesc: PMOpDesc, inScope: Scope, initContext: InitContext) throws -> OpType {
do {
return try OpType.provide(device:device, opDesc: opDesc, inScope: inScope, initContext: initContext)
} catch let error {
......@@ -100,11 +100,11 @@ protocol OperatorProtocol {
var attrs: [String : Attr] { get }
var para: ParamType { get }
var kernel: KerType { get }
init(device: MTLDevice, opDesc: OpDesc, inScope: Scope, initContext: InitContext) throws
init(device: MTLDevice, opDesc: PMOpDesc, inScope: Scope, initContext: InitContext) throws
}
extension OperatorProtocol {
static func provide(device: MTLDevice, opDesc: OpDesc, inScope: Scope, initContext: InitContext) throws -> Self {
static func provide(device: MTLDevice, opDesc: PMOpDesc, inScope: Scope, initContext: InitContext) throws -> Self {
do {
return try Self.init(device: device, opDesc: opDesc, inScope: inScope, initContext: initContext)
} catch let error {
......@@ -114,7 +114,7 @@ extension OperatorProtocol {
}
class Operator <KernelType: Computable , ParameterType>: OperatorProtocol where KernelType.ParamType == ParameterType {
required init(device: MTLDevice, opDesc: OpDesc, inScope: Scope, initContext: InitContext) throws {
required init(device: MTLDevice, opDesc: PMOpDesc, inScope: Scope, initContext: InitContext) throws {
type = opDesc.type
scope = inScope
inputs = opDesc.inputs
......
......@@ -17,7 +17,7 @@ import Metal
class BatchNormParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try BatchNormParam.inputX(inputs: opDesc.inputs, from: inScope)
if input.transpose != [0, 2, 3, 1] {
......
......@@ -17,7 +17,7 @@ import Metal
class BilinearInterpParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try BilinearInterpParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try BilinearInterpParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class BoxcoderParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
priorBox = try BoxcoderParam.getFirstTensor(key: "PriorBox", map: opDesc.inputs, from: inScope)
priorBoxVar = try BoxcoderParam.getFirstTensor(key: "PriorBoxVar", map: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ConcatParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
guard let xlist = opDesc.inputs["X"] else {
fatalError()
......
......@@ -17,7 +17,7 @@ import Metal
class ConvAddAddPreluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
filter = try ConvAddAddPreluParam.inputFilter(paraInputs: opDesc.paraInputs, from: inScope)
input = try ConvAddAddPreluParam.input(inputs: opDesc.inputs, from: inScope)
......
......@@ -17,7 +17,7 @@ import Foundation
class ConvAddBatchNormReluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
filter = try ConvAddBatchNormReluParam.inputFilter(paraInputs: opDesc.paraInputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ConvAddParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
filter = try ConvAddParam.inputFilter(paraInputs: opDesc.paraInputs, from: inScope)
input = try ConvAddParam.input(inputs: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ConvAddPreluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
filter = try ConvAddPreluParam.inputFilter(paraInputs: opDesc.paraInputs, from: inScope)
input = try ConvAddPreluParam.input(inputs: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ConvBNReluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
filter = try ConvBNReluParam.inputFilter(paraInputs: opDesc.paraInputs, from: inScope)
input = try ConvBNReluParam.input(inputs: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ConvParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
filter = try ConvParam.inputFilter(paraInputs: opDesc.paraInputs, from: inScope)
input = try ConvParam.input(inputs: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ConvTransposeParam<P: PrecisionType>: ConvParam<P> {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
try super.init(opDesc: opDesc, inScope: inScope)
} catch let error {
......
......@@ -17,7 +17,7 @@ import Metal
class ElementwiseAddParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
inputX = try ElementwiseAddParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try ElementwiseAddParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -17,7 +17,7 @@ import Metal
class ElementwiseAddPreluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
alpha = try ElementwiseAddPreluParam.paramInputAlpha(inputs: opDesc.paraInputs, from: inScope)
mode = try ElementwiseAddPreluParam.getAttr(key: "mode", attrs: opDesc.attrs)
......
......@@ -23,7 +23,7 @@ class FeedParam<P: PrecisionType>: OpParam{
}
let scope: Scope
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
scope = inScope
do {
output = try FeedParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -19,7 +19,7 @@ class FetchParam<P: PrecisionType>: OpParam{
var output: FetchHolder
let input: Texture
let scope: Scope
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
scope = inScope
do {
input = try FetchParam.inputX(inputs: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class FlattenParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try FlattenParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try FlattenParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class MulticlassNMSParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
scores = try MulticlassNMSParam.getFirstTensor(key: "Scores", map: opDesc.inputs, from: inScope)
bboxes = try MulticlassNMSParam.getFirstTensor(key: "BBoxes", map: opDesc.inputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class PoolParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try PoolParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try PoolParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class PreluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try PreluParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try PreluParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class PriorBoxParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
min_max_aspect_ratios_order = try PriorBoxParam.getAttr(key: "min_max_aspect_ratios_order", attrs: opDesc.attrs)
} catch _ {
......
......@@ -17,7 +17,7 @@ import Foundation
class ReluParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try ReluParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try ReluParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -17,7 +17,7 @@ import Metal
class ReshapeParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try ReshapeParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try ReshapeParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class ResizeBilinearParam<P: PrecisionType>: OpParam {
typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try ResizeBilinearParam.inputX(inputs: opDesc.inputs, from: inScope)
// if (input.transpose != [0, 2, 3, 1]) || (input.tensorDim.cout() != 4) {
......
......@@ -16,7 +16,7 @@ import Foundation
class ShapeParam<P: PrecisionType>: OpParam {
// typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try ShapeParam.input(inputs: opDesc.inputs, from: inScope)
output = try ShapeParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -17,7 +17,7 @@ import Metal
class SoftmaxParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try SoftmaxParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try SoftmaxParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -16,7 +16,7 @@ import Foundation
class SplitParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try SplitParam.inputX(inputs: opDesc.inputs, from: inScope)
output = Texture.init(device: input.metalTexture!.device, inDim: input.dim)
......
......@@ -17,7 +17,7 @@ import Metal
class TransposeParam<P: PrecisionType>: OpParam {
//typealias ParamPrecisionType = P
required init(opDesc: OpDesc, inScope: Scope) throws {
required init(opDesc: PMOpDesc, inScope: Scope) throws {
do {
input = try TransposeParam.inputX(inputs: opDesc.inputs, from: inScope)
output = try TransposeParam.outputOut(outputs: opDesc.outputs, from: inScope)
......
......@@ -35,7 +35,11 @@ extension Array: Attr {
extension String: Attr {
}
func attrWithProtoDesc(attrDesc: PaddleMobile_Framework_Proto_OpDesc.Attr) -> Attr {
extension NSMutableArray :Attr {
}
func attrWithProtoDesc(attrDesc: OpDesc_Attr) -> Attr {
switch attrDesc.type {
case .boolean:
return attrDesc.b
......@@ -47,14 +51,33 @@ func attrWithProtoDesc(attrDesc: PaddleMobile_Framework_Proto_OpDesc.Attr) -> At
return attrDesc.l
case .float:
return attrDesc.f
/// convert GPB class to swift class
case .booleans:
return attrDesc.bools
var dimsArray = [Bool]()
let dimsCount = attrDesc.boolsArray.count
for i in 0..<dimsCount {
let dim = Bool(attrDesc.boolsArray.value(at: i))
dimsArray.append(dim)
}
return dimsArray
case .floats:
return attrDesc.floats
var dimsArray = [Float]()
let dimsCount = attrDesc.floatsArray.count
for i in 0..<dimsCount {
let dim = Float(attrDesc.floatsArray.value(at: i))
dimsArray.append(dim)
}
return dimsArray
case .ints:
return attrDesc.ints
var dimsArray = [Int32]()
let dimsCount = attrDesc.intsArray.count
for i in 0..<dimsCount {
let dim = Int32(attrDesc.intsArray.value(at: i))
dimsArray.append(dim)
}
return dimsArray
case .strings:
return attrDesc.strings
return attrDesc.stringsArray
default:
fatalError(" not support this attr type: \(attrDesc.type)")
}
......
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Framework.proto
// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
#define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif
//#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
// #import <Protobuf/GPBProtocolBuffers.h>
//#else
// #import "GPBProtocolBuffers.h"
//#endif
#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
#import <Protobuf/GPBProtocolBuffers.h>
#else
#import <ProtocolBuffers/ProtocolBuffers.h>
#endif
#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30001
#error This file was generated by a different version of protoc which is incompatible with your Protocol Buffer library sources.
#endif
// @@protoc_insertion_point(imports)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
CF_EXTERN_C_BEGIN
@class BlockDesc;
@class OpDesc;
@class OpDesc_Attr;
@class OpDesc_Var;
@class OpProto_Attr;
@class OpProto_Var;
@class VarDesc;
@class VarType;
@class VarType_ChannelDesc;
@class VarType_LoDTensorArrayDesc;
@class VarType_LoDTensorDesc;
@class VarType_ReaderDesc;
@class VarType_TensorDesc;
@class VarType_Tuple;
@class Version;
NS_ASSUME_NONNULL_BEGIN
#pragma mark - Enum AttrType
typedef GPB_ENUM(AttrType) {
AttrType_Int = 0,
AttrType_Float = 1,
AttrType_String = 2,
AttrType_Ints = 3,
AttrType_Floats = 4,
AttrType_Strings = 5,
AttrType_Boolean = 6,
AttrType_Booleans = 7,
AttrType_Block = 8,
AttrType_Long = 9,
AttrType_Blocks = 10,
};
GPBEnumDescriptor *AttrType_EnumDescriptor(void);
/// Checks to see if the given value is defined by the enum or was not known at
/// the time this source was generated.
BOOL AttrType_IsValidValue(int32_t value);
#pragma mark - Enum VarType_Type
typedef GPB_ENUM(VarType_Type) {
/// Pod Types
VarType_Type_Bool = 0,
VarType_Type_Int16 = 1,
VarType_Type_Int32 = 2,
VarType_Type_Int64 = 3,
VarType_Type_Fp16 = 4,
VarType_Type_Fp32 = 5,
VarType_Type_Fp64 = 6,
/// Tensor<size_t> is used in C++.
VarType_Type_SizeT = 19,
VarType_Type_Uint8 = 20,
VarType_Type_Int8 = 21,
/// Other types that may need additional descriptions
VarType_Type_LodTensor = 7,
VarType_Type_SelectedRows = 8,
VarType_Type_FeedMinibatch = 9,
VarType_Type_FetchList = 10,
VarType_Type_StepScopes = 11,
VarType_Type_LodRankTable = 12,
VarType_Type_LodTensorArray = 13,
VarType_Type_PlaceList = 14,
VarType_Type_Reader = 15,
VarType_Type_Channel = 16,
/// Any runtime decided variable type is raw
/// raw variables should manage their own allocations
/// in operators like nccl_op
VarType_Type_Raw = 17,
VarType_Type_Tuple = 18,
};
GPBEnumDescriptor *VarType_Type_EnumDescriptor(void);
/// Checks to see if the given value is defined by the enum or was not known at
/// the time this source was generated.
BOOL VarType_Type_IsValidValue(int32_t value);
#pragma mark - FrameworkRoot
/// Exposes the extension registry for this file.
///
/// The base class provides:
/// @code
/// + (GPBExtensionRegistry *)extensionRegistry;
/// @endcode
/// which is a @c GPBExtensionRegistry that includes all the extensions defined by
/// this file and all files that it depends on.
@interface FrameworkRoot : GPBRootObject
@end
#pragma mark - Version
typedef GPB_ENUM(Version_FieldNumber) {
Version_FieldNumber_Version = 1,
};
/// Any incompatible changes to ProgramDesc and its dependencies should
/// raise the version defined version.h.
///
/// Serailization and Deserialization codes should be modified in a way
/// that supports old versions following the version and compatibility policy.
@interface Version : GPBMessage
@property(nonatomic, readwrite) int64_t version;
@property(nonatomic, readwrite) BOOL hasVersion;
@end
#pragma mark - OpDesc
typedef GPB_ENUM(OpDesc_FieldNumber) {
OpDesc_FieldNumber_InputsArray = 1,
OpDesc_FieldNumber_OutputsArray = 2,
OpDesc_FieldNumber_Type = 3,
OpDesc_FieldNumber_AttrsArray = 4,
OpDesc_FieldNumber_IsTarget = 5,
};
/// OpDesc describes an instance of a C++ framework::OperatorBase
/// derived class type.
@interface OpDesc : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *type;
/// Test to see if @c type has been set.
@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc_Var*> *inputsArray;
/// The number of items in @c inputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger inputsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc_Var*> *outputsArray;
/// The number of items in @c outputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger outputsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc_Attr*> *attrsArray;
/// The number of items in @c attrsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger attrsArray_Count;
@property(nonatomic, readwrite) BOOL isTarget;
@property(nonatomic, readwrite) BOOL hasIsTarget;
@end
#pragma mark - OpDesc_Attr
typedef GPB_ENUM(OpDesc_Attr_FieldNumber) {
OpDesc_Attr_FieldNumber_Name = 1,
OpDesc_Attr_FieldNumber_Type = 2,
OpDesc_Attr_FieldNumber_I = 3,
OpDesc_Attr_FieldNumber_F = 4,
OpDesc_Attr_FieldNumber_S = 5,
OpDesc_Attr_FieldNumber_IntsArray = 6,
OpDesc_Attr_FieldNumber_FloatsArray = 7,
OpDesc_Attr_FieldNumber_StringsArray = 8,
OpDesc_Attr_FieldNumber_B = 10,
OpDesc_Attr_FieldNumber_BoolsArray = 11,
OpDesc_Attr_FieldNumber_BlockIdx = 12,
OpDesc_Attr_FieldNumber_L = 13,
OpDesc_Attr_FieldNumber_BlocksIdxArray = 14,
};
@interface OpDesc_Attr : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;
@property(nonatomic, readwrite) AttrType type;
@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite) int32_t i;
@property(nonatomic, readwrite) BOOL hasI;
@property(nonatomic, readwrite) float f;
@property(nonatomic, readwrite) BOOL hasF;
@property(nonatomic, readwrite, copy, null_resettable) NSString *s;
/// Test to see if @c s has been set.
@property(nonatomic, readwrite) BOOL hasS;
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *intsArray;
/// The number of items in @c intsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger intsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) GPBFloatArray *floatsArray;
/// The number of items in @c floatsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger floatsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *stringsArray;
/// The number of items in @c stringsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger stringsArray_Count;
@property(nonatomic, readwrite) BOOL b;
@property(nonatomic, readwrite) BOOL hasB;
@property(nonatomic, readwrite, strong, null_resettable) GPBBoolArray *boolsArray;
/// The number of items in @c boolsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger boolsArray_Count;
@property(nonatomic, readwrite) int32_t blockIdx;
@property(nonatomic, readwrite) BOOL hasBlockIdx;
@property(nonatomic, readwrite) int64_t l;
@property(nonatomic, readwrite) BOOL hasL;
@property(nonatomic, readwrite, strong, null_resettable) GPBInt32Array *blocksIdxArray;
/// The number of items in @c blocksIdxArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger blocksIdxArray_Count;
@end
#pragma mark - OpDesc_Var
typedef GPB_ENUM(OpDesc_Var_FieldNumber) {
OpDesc_Var_FieldNumber_Parameter = 1,
OpDesc_Var_FieldNumber_ArgumentsArray = 2,
};
@interface OpDesc_Var : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *parameter;
/// Test to see if @c parameter has been set.
@property(nonatomic, readwrite) BOOL hasParameter;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString*> *argumentsArray;
/// The number of items in @c argumentsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger argumentsArray_Count;
@end
#pragma mark - OpProto
typedef GPB_ENUM(OpProto_FieldNumber) {
OpProto_FieldNumber_Type = 1,
OpProto_FieldNumber_InputsArray = 2,
OpProto_FieldNumber_OutputsArray = 3,
OpProto_FieldNumber_AttrsArray = 4,
OpProto_FieldNumber_Comment = 5,
};
/// OpProto describes a C++ framework::OperatorBase derived class.
@interface OpProto : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *type;
/// Test to see if @c type has been set.
@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpProto_Var*> *inputsArray;
/// The number of items in @c inputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger inputsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpProto_Var*> *outputsArray;
/// The number of items in @c outputsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger outputsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpProto_Attr*> *attrsArray;
/// The number of items in @c attrsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger attrsArray_Count;
@property(nonatomic, readwrite, copy, null_resettable) NSString *comment;
/// Test to see if @c comment has been set.
@property(nonatomic, readwrite) BOOL hasComment;
@end
#pragma mark - OpProto_Var
typedef GPB_ENUM(OpProto_Var_FieldNumber) {
OpProto_Var_FieldNumber_Name = 1,
OpProto_Var_FieldNumber_Comment = 2,
OpProto_Var_FieldNumber_Duplicable = 3,
OpProto_Var_FieldNumber_Intermediate = 4,
OpProto_Var_FieldNumber_Dispensable = 5,
OpProto_Var_FieldNumber_Reuse = 6,
};
/// VarProto describes the C++ type framework::Variable.
@interface OpProto_Var : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;
@property(nonatomic, readwrite, copy, null_resettable) NSString *comment;
/// Test to see if @c comment has been set.
@property(nonatomic, readwrite) BOOL hasComment;
@property(nonatomic, readwrite) BOOL duplicable;
@property(nonatomic, readwrite) BOOL hasDuplicable;
@property(nonatomic, readwrite) BOOL intermediate;
@property(nonatomic, readwrite) BOOL hasIntermediate;
@property(nonatomic, readwrite) BOOL dispensable;
@property(nonatomic, readwrite) BOOL hasDispensable;
@property(nonatomic, readwrite, copy, null_resettable) NSString *reuse;
/// Test to see if @c reuse has been set.
@property(nonatomic, readwrite) BOOL hasReuse;
@end
#pragma mark - OpProto_Attr
typedef GPB_ENUM(OpProto_Attr_FieldNumber) {
OpProto_Attr_FieldNumber_Name = 1,
OpProto_Attr_FieldNumber_Type = 2,
OpProto_Attr_FieldNumber_Comment = 3,
OpProto_Attr_FieldNumber_Generated = 4,
};
/// AttrProto describes the C++ type Attribute.
@interface OpProto_Attr : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;
@property(nonatomic, readwrite) AttrType type;
@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite, copy, null_resettable) NSString *comment;
/// Test to see if @c comment has been set.
@property(nonatomic, readwrite) BOOL hasComment;
/// If that attribute is generated, it means the Paddle third
/// language binding has responsibility to fill that
/// attribute. End-User should not set that attribute.
@property(nonatomic, readwrite) BOOL generated;
@property(nonatomic, readwrite) BOOL hasGenerated;
@end
#pragma mark - VarType
typedef GPB_ENUM(VarType_FieldNumber) {
VarType_FieldNumber_Type = 1,
VarType_FieldNumber_SelectedRows = 2,
VarType_FieldNumber_LodTensor = 3,
VarType_FieldNumber_TensorArray_p = 4,
VarType_FieldNumber_Reader = 5,
VarType_FieldNumber_Channel = 6,
VarType_FieldNumber_Tuple = 7,
};
@interface VarType : GPBMessage
@property(nonatomic, readwrite) VarType_Type type;
@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite, strong, null_resettable) VarType_TensorDesc *selectedRows;
/// Test to see if @c selectedRows has been set.
@property(nonatomic, readwrite) BOOL hasSelectedRows;
@property(nonatomic, readwrite, strong, null_resettable) VarType_LoDTensorDesc *lodTensor;
/// Test to see if @c lodTensor has been set.
@property(nonatomic, readwrite) BOOL hasLodTensor;
@property(nonatomic, readwrite, strong, null_resettable) VarType_LoDTensorArrayDesc *tensorArray_p;
/// Test to see if @c tensorArray_p has been set.
@property(nonatomic, readwrite) BOOL hasTensorArray_p;
@property(nonatomic, readwrite, strong, null_resettable) VarType_ReaderDesc *reader;
/// Test to see if @c reader has been set.
@property(nonatomic, readwrite) BOOL hasReader;
@property(nonatomic, readwrite, strong, null_resettable) VarType_ChannelDesc *channel;
/// Test to see if @c channel has been set.
@property(nonatomic, readwrite) BOOL hasChannel;
@property(nonatomic, readwrite, strong, null_resettable) VarType_Tuple *tuple;
/// Test to see if @c tuple has been set.
@property(nonatomic, readwrite) BOOL hasTuple;
@end
#pragma mark - VarType_TensorDesc
typedef GPB_ENUM(VarType_TensorDesc_FieldNumber) {
VarType_TensorDesc_FieldNumber_DataType = 1,
VarType_TensorDesc_FieldNumber_DimsArray = 2,
};
@interface VarType_TensorDesc : GPBMessage
/// Should only be PODType. Is enforced in C++
@property(nonatomic, readwrite) VarType_Type dataType;
@property(nonatomic, readwrite) BOOL hasDataType;
/// [UNK, 640, 480] is saved as [-1, 640, 480]
@property(nonatomic, readwrite, strong, null_resettable) GPBInt64Array *dimsArray;
/// The number of items in @c dimsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger dimsArray_Count;
@end
#pragma mark - VarType_LoDTensorDesc
typedef GPB_ENUM(VarType_LoDTensorDesc_FieldNumber) {
VarType_LoDTensorDesc_FieldNumber_Tensor = 1,
VarType_LoDTensorDesc_FieldNumber_LodLevel = 2,
};
@interface VarType_LoDTensorDesc : GPBMessage
@property(nonatomic, readwrite, strong, null_resettable) VarType_TensorDesc *tensor;
/// Test to see if @c tensor has been set.
@property(nonatomic, readwrite) BOOL hasTensor;
@property(nonatomic, readwrite) int32_t lodLevel;
@property(nonatomic, readwrite) BOOL hasLodLevel;
@end
#pragma mark - VarType_LoDTensorArrayDesc
typedef GPB_ENUM(VarType_LoDTensorArrayDesc_FieldNumber) {
VarType_LoDTensorArrayDesc_FieldNumber_Tensor = 1,
VarType_LoDTensorArrayDesc_FieldNumber_LodLevel = 2,
};
@interface VarType_LoDTensorArrayDesc : GPBMessage
@property(nonatomic, readwrite, strong, null_resettable) VarType_TensorDesc *tensor;
/// Test to see if @c tensor has been set.
@property(nonatomic, readwrite) BOOL hasTensor;
@property(nonatomic, readwrite) int32_t lodLevel;
@property(nonatomic, readwrite) BOOL hasLodLevel;
@end
#pragma mark - VarType_ReaderDesc
typedef GPB_ENUM(VarType_ReaderDesc_FieldNumber) {
VarType_ReaderDesc_FieldNumber_LodTensorArray = 1,
};
@interface VarType_ReaderDesc : GPBMessage
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<VarType_LoDTensorDesc*> *lodTensorArray;
/// The number of items in @c lodTensorArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger lodTensorArray_Count;
@end
#pragma mark - VarType_ChannelDesc
typedef GPB_ENUM(VarType_ChannelDesc_FieldNumber) {
VarType_ChannelDesc_FieldNumber_DataType = 1,
VarType_ChannelDesc_FieldNumber_Capacity = 2,
};
@interface VarType_ChannelDesc : GPBMessage
@property(nonatomic, readwrite) VarType_Type dataType;
@property(nonatomic, readwrite) BOOL hasDataType;
@property(nonatomic, readwrite) int64_t capacity;
@property(nonatomic, readwrite) BOOL hasCapacity;
@end
#pragma mark - VarType_Tuple
typedef GPB_ENUM(VarType_Tuple_FieldNumber) {
VarType_Tuple_FieldNumber_ElementTypeArray = 1,
};
@interface VarType_Tuple : GPBMessage
// |elementTypeArray| contains |VarType_Type|
@property(nonatomic, readwrite, strong, null_resettable) GPBEnumArray *elementTypeArray;
/// The number of items in @c elementTypeArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger elementTypeArray_Count;
@end
#pragma mark - VarDesc
typedef GPB_ENUM(VarDesc_FieldNumber) {
VarDesc_FieldNumber_Name = 1,
VarDesc_FieldNumber_Type = 2,
VarDesc_FieldNumber_Persistable = 3,
};
@interface VarDesc : GPBMessage
@property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/// Test to see if @c name has been set.
@property(nonatomic, readwrite) BOOL hasName;
@property(nonatomic, readwrite, strong, null_resettable) VarType *type;
/// Test to see if @c type has been set.
@property(nonatomic, readwrite) BOOL hasType;
@property(nonatomic, readwrite) BOOL persistable;
@property(nonatomic, readwrite) BOOL hasPersistable;
@end
#pragma mark - BlockDesc
typedef GPB_ENUM(BlockDesc_FieldNumber) {
BlockDesc_FieldNumber_Idx = 1,
BlockDesc_FieldNumber_ParentIdx = 2,
BlockDesc_FieldNumber_VarsArray = 3,
BlockDesc_FieldNumber_OpsArray = 4,
BlockDesc_FieldNumber_ForwardBlockIdx = 5,
};
@interface BlockDesc : GPBMessage
@property(nonatomic, readwrite) int32_t idx;
@property(nonatomic, readwrite) BOOL hasIdx;
@property(nonatomic, readwrite) int32_t parentIdx;
@property(nonatomic, readwrite) BOOL hasParentIdx;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<VarDesc*> *varsArray;
/// The number of items in @c varsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger varsArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<OpDesc*> *opsArray;
/// The number of items in @c opsArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger opsArray_Count;
@property(nonatomic, readwrite) int32_t forwardBlockIdx;
@property(nonatomic, readwrite) BOOL hasForwardBlockIdx;
@end
#pragma mark - ProgramDesc
typedef GPB_ENUM(ProgramDesc_FieldNumber) {
ProgramDesc_FieldNumber_BlocksArray = 1,
ProgramDesc_FieldNumber_Version = 2,
};
/// Please refer to
/// https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/program.md
/// for more details.
/// TODO(panyx0718): A model can have multiple programs. Need a
/// way to distinguish them. Maybe ID or name?
@interface ProgramDesc : GPBMessage
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<BlockDesc*> *blocksArray;
/// The number of items in @c blocksArray without causing the array to be created.
@property(nonatomic, readonly) NSUInteger blocksArray_Count;
@property(nonatomic, readwrite, strong, null_resettable) Version *version;
/// Test to see if @c version has been set.
@property(nonatomic, readwrite) BOOL hasVersion;
@end
NS_ASSUME_NONNULL_END
CF_EXTERN_C_END
#pragma clang diagnostic pop
// @@protoc_insertion_point(global_scope)
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Framework.proto
// This CPP symbol can be defined to use imports that match up to the framework
// imports needed when using CocoaPods.
#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
#define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
#endif
//#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
// #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
//#else
// #import "GPBProtocolBuffers_RuntimeSupport.h"
//#endif
#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
#import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
#else
#import <ProtocolBuffers/GPBProtocolBuffers_RuntimeSupport.h>
#endif
#import "Framework.pbobjc.h"
// @@protoc_insertion_point(imports)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma mark - FrameworkRoot
@implementation FrameworkRoot
@end
#pragma mark - FrameworkRoot_FileDescriptor
static GPBFileDescriptor *FrameworkRoot_FileDescriptor(void) {
// This is called by +initialize so there is no need to worry
// about thread safety of the singleton.
static GPBFileDescriptor *descriptor = NULL;
if (!descriptor) {
GPBDebugCheckRuntimeVersion();
descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"paddle_mobile.framework.proto"
syntax:GPBFileSyntaxProto2];
}
return descriptor;
}
#pragma mark - Enum AttrType
GPBEnumDescriptor *AttrType_EnumDescriptor(void) {
static GPBEnumDescriptor *descriptor = NULL;
if (!descriptor) {
static const char *valueNames =
"Int\000Float\000String\000Ints\000Floats\000Strings\000Boo"
"lean\000Booleans\000Block\000Long\000Blocks\000";
static const int32_t values[] = {
AttrType_Int,
AttrType_Float,
AttrType_String,
AttrType_Ints,
AttrType_Floats,
AttrType_Strings,
AttrType_Boolean,
AttrType_Booleans,
AttrType_Block,
AttrType_Long,
AttrType_Blocks,
};
GPBEnumDescriptor *worker =
[GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(AttrType)
valueNames:valueNames
values:values
count:(uint32_t)(sizeof(values) / sizeof(int32_t))
enumVerifier:AttrType_IsValidValue];
if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
[worker release];
}
}
return descriptor;
}
BOOL AttrType_IsValidValue(int32_t value__) {
switch (value__) {
case AttrType_Int:
case AttrType_Float:
case AttrType_String:
case AttrType_Ints:
case AttrType_Floats:
case AttrType_Strings:
case AttrType_Boolean:
case AttrType_Booleans:
case AttrType_Block:
case AttrType_Long:
case AttrType_Blocks:
return YES;
default:
return NO;
}
}
#pragma mark - Version
@implementation Version
@dynamic hasVersion, version;
typedef struct Version__storage_ {
uint32_t _has_storage_[1];
int64_t version;
} Version__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "version",
.dataTypeSpecific.className = NULL,
.number = Version_FieldNumber_Version,
.hasIndex = 0,
.offset = (uint32_t)offsetof(Version__storage_, version),
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeInt64,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[Version class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(Version__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - OpDesc
@implementation OpDesc
@dynamic hasType, type;
@dynamic inputsArray, inputsArray_Count;
@dynamic outputsArray, outputsArray_Count;
@dynamic attrsArray, attrsArray_Count;
@dynamic hasIsTarget, isTarget;
typedef struct OpDesc__storage_ {
uint32_t _has_storage_[1];
NSMutableArray *inputsArray;
NSMutableArray *outputsArray;
NSString *type;
NSMutableArray *attrsArray;
} OpDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "inputsArray",
.dataTypeSpecific.className = GPBStringifySymbol(OpDesc_Var),
.number = OpDesc_FieldNumber_InputsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc__storage_, inputsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "outputsArray",
.dataTypeSpecific.className = GPBStringifySymbol(OpDesc_Var),
.number = OpDesc_FieldNumber_OutputsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc__storage_, outputsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "type",
.dataTypeSpecific.className = NULL,
.number = OpDesc_FieldNumber_Type,
.hasIndex = 0,
.offset = (uint32_t)offsetof(OpDesc__storage_, type),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "attrsArray",
.dataTypeSpecific.className = GPBStringifySymbol(OpDesc_Attr),
.number = OpDesc_FieldNumber_AttrsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc__storage_, attrsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "isTarget",
.dataTypeSpecific.className = NULL,
.number = OpDesc_FieldNumber_IsTarget,
.hasIndex = 1,
.offset = 2, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeBool,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[OpDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(OpDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - OpDesc_Attr
@implementation OpDesc_Attr
@dynamic hasName, name;
@dynamic hasType, type;
@dynamic hasI, i;
@dynamic hasF, f;
@dynamic hasS, s;
@dynamic intsArray, intsArray_Count;
@dynamic floatsArray, floatsArray_Count;
@dynamic stringsArray, stringsArray_Count;
@dynamic hasB, b;
@dynamic boolsArray, boolsArray_Count;
@dynamic hasBlockIdx, blockIdx;
@dynamic hasL, l;
@dynamic blocksIdxArray, blocksIdxArray_Count;
typedef struct OpDesc_Attr__storage_ {
uint32_t _has_storage_[1];
AttrType type;
int32_t i;
float f;
int32_t blockIdx;
NSString *name;
NSString *s;
GPBInt32Array *intsArray;
GPBFloatArray *floatsArray;
NSMutableArray *stringsArray;
GPBBoolArray *boolsArray;
GPBInt32Array *blocksIdxArray;
int64_t l;
} OpDesc_Attr__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "name",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_Name,
.hasIndex = 0,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, name),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "type",
.dataTypeSpecific.enumDescFunc = AttrType_EnumDescriptor,
.number = OpDesc_Attr_FieldNumber_Type,
.hasIndex = 1,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, type),
.flags = GPBFieldRequired | GPBFieldHasEnumDescriptor,
.dataType = GPBDataTypeEnum,
},
{
.name = "i",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_I,
.hasIndex = 2,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, i),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeInt32,
},
{
.name = "f",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_F,
.hasIndex = 3,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, f),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeFloat,
},
{
.name = "s",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_S,
.hasIndex = 4,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, s),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeString,
},
{
.name = "intsArray",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_IntsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, intsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeInt32,
},
{
.name = "floatsArray",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_FloatsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, floatsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeFloat,
},
{
.name = "stringsArray",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_StringsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, stringsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeString,
},
{
.name = "b",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_B,
.hasIndex = 5,
.offset = 6, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional,
.dataType = GPBDataTypeBool,
},
{
.name = "boolsArray",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_BoolsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, boolsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeBool,
},
{
.name = "blockIdx",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_BlockIdx,
.hasIndex = 7,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, blockIdx),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeInt32,
},
{
.name = "l",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_L,
.hasIndex = 8,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, l),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeInt64,
},
{
.name = "blocksIdxArray",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Attr_FieldNumber_BlocksIdxArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc_Attr__storage_, blocksIdxArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeInt32,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[OpDesc_Attr class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(OpDesc_Attr__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - OpDesc_Var
@implementation OpDesc_Var
@dynamic hasParameter, parameter;
@dynamic argumentsArray, argumentsArray_Count;
typedef struct OpDesc_Var__storage_ {
uint32_t _has_storage_[1];
NSString *parameter;
NSMutableArray *argumentsArray;
} OpDesc_Var__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "parameter",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Var_FieldNumber_Parameter,
.hasIndex = 0,
.offset = (uint32_t)offsetof(OpDesc_Var__storage_, parameter),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "argumentsArray",
.dataTypeSpecific.className = NULL,
.number = OpDesc_Var_FieldNumber_ArgumentsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpDesc_Var__storage_, argumentsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeString,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[OpDesc_Var class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(OpDesc_Var__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - OpProto
@implementation OpProto
@dynamic hasType, type;
@dynamic inputsArray, inputsArray_Count;
@dynamic outputsArray, outputsArray_Count;
@dynamic attrsArray, attrsArray_Count;
@dynamic hasComment, comment;
typedef struct OpProto__storage_ {
uint32_t _has_storage_[1];
NSString *type;
NSMutableArray *inputsArray;
NSMutableArray *outputsArray;
NSMutableArray *attrsArray;
NSString *comment;
} OpProto__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "type",
.dataTypeSpecific.className = NULL,
.number = OpProto_FieldNumber_Type,
.hasIndex = 0,
.offset = (uint32_t)offsetof(OpProto__storage_, type),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "inputsArray",
.dataTypeSpecific.className = GPBStringifySymbol(OpProto_Var),
.number = OpProto_FieldNumber_InputsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpProto__storage_, inputsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "outputsArray",
.dataTypeSpecific.className = GPBStringifySymbol(OpProto_Var),
.number = OpProto_FieldNumber_OutputsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpProto__storage_, outputsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "attrsArray",
.dataTypeSpecific.className = GPBStringifySymbol(OpProto_Attr),
.number = OpProto_FieldNumber_AttrsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(OpProto__storage_, attrsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "comment",
.dataTypeSpecific.className = NULL,
.number = OpProto_FieldNumber_Comment,
.hasIndex = 1,
.offset = (uint32_t)offsetof(OpProto__storage_, comment),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[OpProto class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(OpProto__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - OpProto_Var
@implementation OpProto_Var
@dynamic hasName, name;
@dynamic hasComment, comment;
@dynamic hasDuplicable, duplicable;
@dynamic hasIntermediate, intermediate;
@dynamic hasDispensable, dispensable;
@dynamic hasReuse, reuse;
typedef struct OpProto_Var__storage_ {
uint32_t _has_storage_[1];
NSString *name;
NSString *comment;
NSString *reuse;
} OpProto_Var__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "name",
.dataTypeSpecific.className = NULL,
.number = OpProto_Var_FieldNumber_Name,
.hasIndex = 0,
.offset = (uint32_t)offsetof(OpProto_Var__storage_, name),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "comment",
.dataTypeSpecific.className = NULL,
.number = OpProto_Var_FieldNumber_Comment,
.hasIndex = 1,
.offset = (uint32_t)offsetof(OpProto_Var__storage_, comment),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "duplicable",
.dataTypeSpecific.className = NULL,
.number = OpProto_Var_FieldNumber_Duplicable,
.hasIndex = 2,
.offset = 3, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeBool,
},
{
.name = "intermediate",
.dataTypeSpecific.className = NULL,
.number = OpProto_Var_FieldNumber_Intermediate,
.hasIndex = 4,
.offset = 5, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeBool,
},
{
.name = "dispensable",
.dataTypeSpecific.className = NULL,
.number = OpProto_Var_FieldNumber_Dispensable,
.hasIndex = 6,
.offset = 7, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeBool,
},
{
.name = "reuse",
.dataTypeSpecific.className = NULL,
.number = OpProto_Var_FieldNumber_Reuse,
.hasIndex = 8,
.offset = (uint32_t)offsetof(OpProto_Var__storage_, reuse),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeString,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[OpProto_Var class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(OpProto_Var__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - OpProto_Attr
@implementation OpProto_Attr
@dynamic hasName, name;
@dynamic hasType, type;
@dynamic hasComment, comment;
@dynamic hasGenerated, generated;
typedef struct OpProto_Attr__storage_ {
uint32_t _has_storage_[1];
AttrType type;
NSString *name;
NSString *comment;
} OpProto_Attr__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "name",
.dataTypeSpecific.className = NULL,
.number = OpProto_Attr_FieldNumber_Name,
.hasIndex = 0,
.offset = (uint32_t)offsetof(OpProto_Attr__storage_, name),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "type",
.dataTypeSpecific.enumDescFunc = AttrType_EnumDescriptor,
.number = OpProto_Attr_FieldNumber_Type,
.hasIndex = 1,
.offset = (uint32_t)offsetof(OpProto_Attr__storage_, type),
.flags = GPBFieldRequired | GPBFieldHasEnumDescriptor,
.dataType = GPBDataTypeEnum,
},
{
.name = "comment",
.dataTypeSpecific.className = NULL,
.number = OpProto_Attr_FieldNumber_Comment,
.hasIndex = 2,
.offset = (uint32_t)offsetof(OpProto_Attr__storage_, comment),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "generated",
.dataTypeSpecific.className = NULL,
.number = OpProto_Attr_FieldNumber_Generated,
.hasIndex = 3,
.offset = 4, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeBool,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[OpProto_Attr class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(OpProto_Attr__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarType
@implementation VarType
@dynamic hasType, type;
@dynamic hasSelectedRows, selectedRows;
@dynamic hasLodTensor, lodTensor;
@dynamic hasTensorArray_p, tensorArray_p;
@dynamic hasReader, reader;
@dynamic hasChannel, channel;
@dynamic hasTuple, tuple;
typedef struct VarType__storage_ {
uint32_t _has_storage_[1];
VarType_Type type;
VarType_TensorDesc *selectedRows;
VarType_LoDTensorDesc *lodTensor;
VarType_LoDTensorArrayDesc *tensorArray_p;
VarType_ReaderDesc *reader;
VarType_ChannelDesc *channel;
VarType_Tuple *tuple;
} VarType__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "type",
.dataTypeSpecific.enumDescFunc = VarType_Type_EnumDescriptor,
.number = VarType_FieldNumber_Type,
.hasIndex = 0,
.offset = (uint32_t)offsetof(VarType__storage_, type),
.flags = GPBFieldRequired | GPBFieldHasEnumDescriptor,
.dataType = GPBDataTypeEnum,
},
{
.name = "selectedRows",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_TensorDesc),
.number = VarType_FieldNumber_SelectedRows,
.hasIndex = 1,
.offset = (uint32_t)offsetof(VarType__storage_, selectedRows),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "lodTensor",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_LoDTensorDesc),
.number = VarType_FieldNumber_LodTensor,
.hasIndex = 2,
.offset = (uint32_t)offsetof(VarType__storage_, lodTensor),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "tensorArray_p",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_LoDTensorArrayDesc),
.number = VarType_FieldNumber_TensorArray_p,
.hasIndex = 3,
.offset = (uint32_t)offsetof(VarType__storage_, tensorArray_p),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "reader",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_ReaderDesc),
.number = VarType_FieldNumber_Reader,
.hasIndex = 4,
.offset = (uint32_t)offsetof(VarType__storage_, reader),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "channel",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_ChannelDesc),
.number = VarType_FieldNumber_Channel,
.hasIndex = 5,
.offset = (uint32_t)offsetof(VarType__storage_, channel),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "tuple",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_Tuple),
.number = VarType_FieldNumber_Tuple,
.hasIndex = 6,
.offset = (uint32_t)offsetof(VarType__storage_, tuple),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - Enum VarType_Type
GPBEnumDescriptor *VarType_Type_EnumDescriptor(void) {
static GPBEnumDescriptor *descriptor = NULL;
if (!descriptor) {
static const char *valueNames =
"Bool\000Int16\000Int32\000Int64\000Fp16\000Fp32\000Fp64\000Si"
"zeT\000Uint8\000Int8\000LodTensor\000SelectedRows\000Fe"
"edMinibatch\000FetchList\000StepScopes\000LodRank"
"Table\000LodTensorArray\000PlaceList\000Reader\000Ch"
"annel\000Raw\000Tuple\000";
static const int32_t values[] = {
VarType_Type_Bool,
VarType_Type_Int16,
VarType_Type_Int32,
VarType_Type_Int64,
VarType_Type_Fp16,
VarType_Type_Fp32,
VarType_Type_Fp64,
VarType_Type_SizeT,
VarType_Type_Uint8,
VarType_Type_Int8,
VarType_Type_LodTensor,
VarType_Type_SelectedRows,
VarType_Type_FeedMinibatch,
VarType_Type_FetchList,
VarType_Type_StepScopes,
VarType_Type_LodRankTable,
VarType_Type_LodTensorArray,
VarType_Type_PlaceList,
VarType_Type_Reader,
VarType_Type_Channel,
VarType_Type_Raw,
VarType_Type_Tuple,
};
GPBEnumDescriptor *worker =
[GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(VarType_Type)
valueNames:valueNames
values:values
count:(uint32_t)(sizeof(values) / sizeof(int32_t))
enumVerifier:VarType_Type_IsValidValue];
if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
[worker release];
}
}
return descriptor;
}
BOOL VarType_Type_IsValidValue(int32_t value__) {
switch (value__) {
case VarType_Type_Bool:
case VarType_Type_Int16:
case VarType_Type_Int32:
case VarType_Type_Int64:
case VarType_Type_Fp16:
case VarType_Type_Fp32:
case VarType_Type_Fp64:
case VarType_Type_SizeT:
case VarType_Type_Uint8:
case VarType_Type_Int8:
case VarType_Type_LodTensor:
case VarType_Type_SelectedRows:
case VarType_Type_FeedMinibatch:
case VarType_Type_FetchList:
case VarType_Type_StepScopes:
case VarType_Type_LodRankTable:
case VarType_Type_LodTensorArray:
case VarType_Type_PlaceList:
case VarType_Type_Reader:
case VarType_Type_Channel:
case VarType_Type_Raw:
case VarType_Type_Tuple:
return YES;
default:
return NO;
}
}
#pragma mark - VarType_TensorDesc
@implementation VarType_TensorDesc
@dynamic hasDataType, dataType;
@dynamic dimsArray, dimsArray_Count;
typedef struct VarType_TensorDesc__storage_ {
uint32_t _has_storage_[1];
VarType_Type dataType;
GPBInt64Array *dimsArray;
} VarType_TensorDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "dataType",
.dataTypeSpecific.enumDescFunc = VarType_Type_EnumDescriptor,
.number = VarType_TensorDesc_FieldNumber_DataType,
.hasIndex = 0,
.offset = (uint32_t)offsetof(VarType_TensorDesc__storage_, dataType),
.flags = GPBFieldRequired | GPBFieldHasEnumDescriptor,
.dataType = GPBDataTypeEnum,
},
{
.name = "dimsArray",
.dataTypeSpecific.className = NULL,
.number = VarType_TensorDesc_FieldNumber_DimsArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(VarType_TensorDesc__storage_, dimsArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeInt64,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType_TensorDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType_TensorDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarType_LoDTensorDesc
@implementation VarType_LoDTensorDesc
@dynamic hasTensor, tensor;
@dynamic hasLodLevel, lodLevel;
typedef struct VarType_LoDTensorDesc__storage_ {
uint32_t _has_storage_[1];
int32_t lodLevel;
VarType_TensorDesc *tensor;
} VarType_LoDTensorDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "tensor",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_TensorDesc),
.number = VarType_LoDTensorDesc_FieldNumber_Tensor,
.hasIndex = 0,
.offset = (uint32_t)offsetof(VarType_LoDTensorDesc__storage_, tensor),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeMessage,
},
{
.name = "lodLevel",
.dataTypeSpecific.className = NULL,
.number = VarType_LoDTensorDesc_FieldNumber_LodLevel,
.hasIndex = 1,
.offset = (uint32_t)offsetof(VarType_LoDTensorDesc__storage_, lodLevel),
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeInt32,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType_LoDTensorDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType_LoDTensorDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarType_LoDTensorArrayDesc
@implementation VarType_LoDTensorArrayDesc
@dynamic hasTensor, tensor;
@dynamic hasLodLevel, lodLevel;
typedef struct VarType_LoDTensorArrayDesc__storage_ {
uint32_t _has_storage_[1];
int32_t lodLevel;
VarType_TensorDesc *tensor;
} VarType_LoDTensorArrayDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "tensor",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_TensorDesc),
.number = VarType_LoDTensorArrayDesc_FieldNumber_Tensor,
.hasIndex = 0,
.offset = (uint32_t)offsetof(VarType_LoDTensorArrayDesc__storage_, tensor),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeMessage,
},
{
.name = "lodLevel",
.dataTypeSpecific.className = NULL,
.number = VarType_LoDTensorArrayDesc_FieldNumber_LodLevel,
.hasIndex = 1,
.offset = (uint32_t)offsetof(VarType_LoDTensorArrayDesc__storage_, lodLevel),
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeInt32,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType_LoDTensorArrayDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType_LoDTensorArrayDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarType_ReaderDesc
@implementation VarType_ReaderDesc
@dynamic lodTensorArray, lodTensorArray_Count;
typedef struct VarType_ReaderDesc__storage_ {
uint32_t _has_storage_[1];
NSMutableArray *lodTensorArray;
} VarType_ReaderDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "lodTensorArray",
.dataTypeSpecific.className = GPBStringifySymbol(VarType_LoDTensorDesc),
.number = VarType_ReaderDesc_FieldNumber_LodTensorArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(VarType_ReaderDesc__storage_, lodTensorArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType_ReaderDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType_ReaderDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarType_ChannelDesc
@implementation VarType_ChannelDesc
@dynamic hasDataType, dataType;
@dynamic hasCapacity, capacity;
typedef struct VarType_ChannelDesc__storage_ {
uint32_t _has_storage_[1];
VarType_Type dataType;
int64_t capacity;
} VarType_ChannelDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "dataType",
.dataTypeSpecific.enumDescFunc = VarType_Type_EnumDescriptor,
.number = VarType_ChannelDesc_FieldNumber_DataType,
.hasIndex = 0,
.offset = (uint32_t)offsetof(VarType_ChannelDesc__storage_, dataType),
.flags = GPBFieldRequired | GPBFieldHasEnumDescriptor,
.dataType = GPBDataTypeEnum,
},
{
.name = "capacity",
.dataTypeSpecific.className = NULL,
.number = VarType_ChannelDesc_FieldNumber_Capacity,
.hasIndex = 1,
.offset = (uint32_t)offsetof(VarType_ChannelDesc__storage_, capacity),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeInt64,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType_ChannelDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType_ChannelDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarType_Tuple
@implementation VarType_Tuple
@dynamic elementTypeArray, elementTypeArray_Count;
typedef struct VarType_Tuple__storage_ {
uint32_t _has_storage_[1];
GPBEnumArray *elementTypeArray;
} VarType_Tuple__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "elementTypeArray",
.dataTypeSpecific.enumDescFunc = VarType_Type_EnumDescriptor,
.number = VarType_Tuple_FieldNumber_ElementTypeArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(VarType_Tuple__storage_, elementTypeArray),
.flags = GPBFieldRepeated | GPBFieldHasEnumDescriptor,
.dataType = GPBDataTypeEnum,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarType_Tuple class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarType_Tuple__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - VarDesc
@implementation VarDesc
@dynamic hasName, name;
@dynamic hasType, type;
@dynamic hasPersistable, persistable;
typedef struct VarDesc__storage_ {
uint32_t _has_storage_[1];
NSString *name;
VarType *type;
} VarDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "name",
.dataTypeSpecific.className = NULL,
.number = VarDesc_FieldNumber_Name,
.hasIndex = 0,
.offset = (uint32_t)offsetof(VarDesc__storage_, name),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeString,
},
{
.name = "type",
.dataTypeSpecific.className = GPBStringifySymbol(VarType),
.number = VarDesc_FieldNumber_Type,
.hasIndex = 1,
.offset = (uint32_t)offsetof(VarDesc__storage_, type),
.flags = GPBFieldRequired,
.dataType = GPBDataTypeMessage,
},
{
.name = "persistable",
.dataTypeSpecific.className = NULL,
.number = VarDesc_FieldNumber_Persistable,
.hasIndex = 2,
.offset = 3, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.dataType = GPBDataTypeBool,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[VarDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(VarDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - BlockDesc
@implementation BlockDesc
@dynamic hasIdx, idx;
@dynamic hasParentIdx, parentIdx;
@dynamic varsArray, varsArray_Count;
@dynamic opsArray, opsArray_Count;
@dynamic hasForwardBlockIdx, forwardBlockIdx;
typedef struct BlockDesc__storage_ {
uint32_t _has_storage_[1];
int32_t idx;
int32_t parentIdx;
int32_t forwardBlockIdx;
NSMutableArray *varsArray;
NSMutableArray *opsArray;
} BlockDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescriptionWithDefault fields[] = {
{
.defaultValue.valueInt32 = 0,
.core.name = "idx",
.core.dataTypeSpecific.className = NULL,
.core.number = BlockDesc_FieldNumber_Idx,
.core.hasIndex = 0,
.core.offset = (uint32_t)offsetof(BlockDesc__storage_, idx),
.core.flags = GPBFieldRequired,
.core.dataType = GPBDataTypeInt32,
},
{
.defaultValue.valueInt32 = 0,
.core.name = "parentIdx",
.core.dataTypeSpecific.className = NULL,
.core.number = BlockDesc_FieldNumber_ParentIdx,
.core.hasIndex = 1,
.core.offset = (uint32_t)offsetof(BlockDesc__storage_, parentIdx),
.core.flags = GPBFieldRequired,
.core.dataType = GPBDataTypeInt32,
},
{
.defaultValue.valueMessage = nil,
.core.name = "varsArray",
.core.dataTypeSpecific.className = GPBStringifySymbol(VarDesc),
.core.number = BlockDesc_FieldNumber_VarsArray,
.core.hasIndex = GPBNoHasBit,
.core.offset = (uint32_t)offsetof(BlockDesc__storage_, varsArray),
.core.flags = GPBFieldRepeated,
.core.dataType = GPBDataTypeMessage,
},
{
.defaultValue.valueMessage = nil,
.core.name = "opsArray",
.core.dataTypeSpecific.className = GPBStringifySymbol(OpDesc),
.core.number = BlockDesc_FieldNumber_OpsArray,
.core.hasIndex = GPBNoHasBit,
.core.offset = (uint32_t)offsetof(BlockDesc__storage_, opsArray),
.core.flags = GPBFieldRepeated,
.core.dataType = GPBDataTypeMessage,
},
{
.defaultValue.valueInt32 = -1,
.core.name = "forwardBlockIdx",
.core.dataTypeSpecific.className = NULL,
.core.number = BlockDesc_FieldNumber_ForwardBlockIdx,
.core.hasIndex = 2,
.core.offset = (uint32_t)offsetof(BlockDesc__storage_, forwardBlockIdx),
.core.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.core.dataType = GPBDataTypeInt32,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[BlockDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescriptionWithDefault))
storageSize:sizeof(BlockDesc__storage_)
flags:GPBDescriptorInitializationFlag_FieldsWithDefault];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - ProgramDesc
@implementation ProgramDesc
@dynamic blocksArray, blocksArray_Count;
@dynamic hasVersion, version;
typedef struct ProgramDesc__storage_ {
uint32_t _has_storage_[1];
NSMutableArray *blocksArray;
Version *version;
} ProgramDesc__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "blocksArray",
.dataTypeSpecific.className = GPBStringifySymbol(BlockDesc),
.number = ProgramDesc_FieldNumber_BlocksArray,
.hasIndex = GPBNoHasBit,
.offset = (uint32_t)offsetof(ProgramDesc__storage_, blocksArray),
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
{
.name = "version",
.dataTypeSpecific.className = GPBStringifySymbol(Version),
.number = ProgramDesc_FieldNumber_Version,
.hasIndex = 0,
.offset = (uint32_t)offsetof(ProgramDesc__storage_, version),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[ProgramDesc class]
rootClass:[FrameworkRoot class]
file:FrameworkRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(ProgramDesc__storage_)
flags:0];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma clang diagnostic pop
// @@protoc_insertion_point(global_scope)
......@@ -14,28 +14,28 @@
import Foundation
public class BlockDesc {
public class PMBlockDesc {
let index: Int
let parentIndex: Int
public let vars: [VarDesc]
let ops: [OpDesc]
init(block: PaddleMobile_Framework_Proto_BlockDesc) {
public let vars: [PMVarDesc]
let ops: [PMOpDesc]
init(block: BlockDesc) {
index = Int(block.idx)
parentIndex = Int(block.parentIdx)
var vars: [VarDesc] = []
for varOfBlock in block.vars {
vars.append(VarDesc.init(protoVarDesc: varOfBlock))
var vars: [PMVarDesc] = []
for varOfBlock in block.varsArray {
vars.append(PMVarDesc.init(protoVarDesc: varOfBlock as! VarDesc))
}
vars.sort { $0.name < $1.name }
self.vars = vars
var ops: [OpDesc] = []
for op in block.ops {
ops.append(OpDesc.init(protoOpDesc: op))
var ops: [PMOpDesc] = []
for op in block.opsArray {
ops.append(PMOpDesc.init(protoOpDesc: op as! OpDesc))
}
self.ops = ops
}
init(inVars: [VarDesc], inOps: [OpDesc]) {
init(inVars: [PMVarDesc], inOps: [PMOpDesc]) {
vars = inVars
ops = inOps
index = 0
......@@ -44,7 +44,7 @@ public class BlockDesc {
}
extension BlockDesc: CustomStringConvertible, CustomDebugStringConvertible {
extension PMBlockDesc: CustomStringConvertible, CustomDebugStringConvertible {
public var description: String {
var str = ""
......
......@@ -14,50 +14,50 @@
import Foundation
class OpDesc {
class PMOpDesc {
let inputs: [String : [String]]
var paraInputs: [String : [String]]
var outputs: [String : [String]]
let unusedOutputs: [String : [String]]
var attrs: [String : Attr] = [:]
var type: String
init(protoOpDesc: PaddleMobile_Framework_Proto_OpDesc) {
type = protoOpDesc.type
let creator = { (vars: [PaddleMobile_Framework_Proto_OpDesc.Var], canAdd: (String) -> Bool) -> [String : [String]] in
var map: [String : [String]] = [:]
for opDescVar in vars {
if (canAdd(opDescVar.parameter)) {
map[opDescVar.parameter] = opDescVar.arguments
init(protoOpDesc: OpDesc) {
type = protoOpDesc.type
let creator = { (vars: [OpDesc_Var], canAdd: (String) -> Bool) -> [String : [String]] in
var map: [String : [String]] = [:]
for opDescVar in vars {
if (canAdd(opDescVar.parameter)) {
map[opDescVar.parameter] = opDescVar.argumentsArray as! [String]
}
}
return map
}
inputs = creator(protoOpDesc.inputsArray as! [OpDesc_Var]) {
opInfos[protoOpDesc.type]?.inputs.contains($0) ?? false
}
paraInputs = creator(protoOpDesc.inputsArray as! [OpDesc_Var]) {
!(opInfos[protoOpDesc.type]?.inputs.contains($0) ?? false)
}
outputs = creator(protoOpDesc.outputsArray as! [OpDesc_Var]) {
opInfos[protoOpDesc.type]?.outputs.contains($0) ?? false
}
unusedOutputs = creator(protoOpDesc.outputsArray as! [OpDesc_Var]) {
!(opInfos[protoOpDesc.type]?.outputs.contains($0) ?? false)
}
for attr in protoOpDesc.attrsArray {
if ((attr as! OpDesc_Attr).type != .block) {
attrs[(attr as! OpDesc_Attr).name] = attrWithProtoDesc(attrDesc: attr as! OpDesc_Attr)
}
}
}
return map
}
inputs = creator(protoOpDesc.inputs) {
opInfos[protoOpDesc.type]?.inputs.contains($0) ?? false
}
paraInputs = creator(protoOpDesc.inputs) {
!(opInfos[protoOpDesc.type]?.inputs.contains($0) ?? false)
}
outputs = creator(protoOpDesc.outputs) {
opInfos[protoOpDesc.type]?.outputs.contains($0) ?? false
}
unusedOutputs = creator(protoOpDesc.outputs) {
!(opInfos[protoOpDesc.type]?.outputs.contains($0) ?? false)
}
for attr in protoOpDesc.attrs {
if (attr.type != .block) {
attrs[attr.name] = attrWithProtoDesc(attrDesc: attr)
}
}
}
}
extension OpDesc: CustomStringConvertible, CustomDebugStringConvertible {
extension PMOpDesc: CustomStringConvertible, CustomDebugStringConvertible {
var description: String {
var str = ""
str += "op type: \(type): \n"
......
......@@ -14,11 +14,11 @@
import Foundation
public class ProgramDesc {
public var blocks: [BlockDesc] = []
init(protoProgram: PaddleMobile_Framework_Proto_ProgramDesc) {
for block in protoProgram.blocks {
self.blocks.append(BlockDesc.init(block: block))
public class PMProgramDesc {
public var blocks: [PMBlockDesc] = []
init(protoProgram: ProgramDesc) {
for block in protoProgram.blocksArray {
self.blocks.append(PMBlockDesc.init(block: block as! BlockDesc))
}
}
......@@ -26,7 +26,7 @@ public class ProgramDesc {
}
}
extension ProgramDesc: CustomStringConvertible, CustomDebugStringConvertible {
extension PMProgramDesc: CustomStringConvertible, CustomDebugStringConvertible {
public var description: String {
var str: String = ""
for i in 0..<blocks.count {
......
......@@ -56,13 +56,13 @@ public enum VarTypeType: Int {
}
}
public class VarDesc {
public class PMVarDesc {
public let name: String
public let persistable: Bool
public let type: VarTypeType
let tensorDesc: TensorDesc?
init(protoVarDesc: PaddleMobile_Framework_Proto_VarDesc) {
type = VarTypeType.init(rawValue: protoVarDesc.type.type.rawValue) ?? .ErrorType
init(protoVarDesc: VarDesc) {
type = VarTypeType.init(rawValue: Int(protoVarDesc.type.type.rawValue)) ?? .ErrorType
name = protoVarDesc.name
persistable = protoVarDesc.persistable
switch type {
......@@ -71,14 +71,14 @@ public class VarDesc {
case .LodTensor:
tensorDesc = TensorDesc.init(protoTensorDesc: protoVarDesc.type.lodTensor.tensor)
case .StepLodTensorArray:
tensorDesc = TensorDesc.init(protoTensorDesc: protoVarDesc.type.tensorArray.tensor);
tensorDesc = TensorDesc.init(protoTensorDesc: protoVarDesc.type.tensorArray_p.tensor);
default:
tensorDesc = .none
}
}
}
extension VarDesc: CustomStringConvertible, CustomDebugStringConvertible {
extension PMVarDesc: CustomStringConvertible, CustomDebugStringConvertible {
public var description: String {
var str = ""
str += "var name \(name): \n"
......
......@@ -16,14 +16,14 @@ import Foundation
@objc public class Program: NSObject {
public let paramPath: String
public let programDesc: ProgramDesc
public let programDesc: PMProgramDesc
public let scope: Scope
init(inProgramDesc: ProgramDesc, inParamPath: String, inScope: Scope) {
init(inProgramDesc: PMProgramDesc, inParamPath: String, inScope: Scope) {
programDesc = inProgramDesc
paramPath = inParamPath
scope = inScope
}
init(inProgramDesc: ProgramDesc, inScope: Scope) {
init(inProgramDesc: PMProgramDesc, inScope: Scope) {
programDesc = inProgramDesc
scope = inScope
paramPath = ""
......
......@@ -25,8 +25,8 @@ class Node {
var inputs: [Node] = []
var outputs: [Node] = []
var type: String
var opDesc: OpDesc?
init(inOpDesc: OpDesc) {
var opDesc: PMOpDesc?
init(inOpDesc: PMOpDesc) {
type = inOpDesc.type
opDesc = inOpDesc
}
......@@ -192,7 +192,7 @@ class ProgramOptimize<P: PrecisionType> {
ElementwiseAddPreluOp<P>.self
]
func optimize(originProgramDesc: ProgramDesc) -> ProgramDesc {
func optimize(originProgramDesc: PMProgramDesc) -> PMProgramDesc {
guard originProgramDesc.blocks.count == 1 else {
fatalError(" not support yet")
......@@ -287,13 +287,13 @@ class ProgramOptimize<P: PrecisionType> {
}
}
var ops: [OpDesc] = []
var ops: [PMOpDesc] = []
for node in nodes {
ops.append(node.opDesc!)
}
var newProgramDesc = ProgramDesc.init()
let newBlock = BlockDesc.init(inVars: block.vars, inOps: ops)
var newProgramDesc = PMProgramDesc.init()
let newBlock = PMBlockDesc.init(inVars: block.vars, inOps: ops)
newProgramDesc.blocks.append(newBlock)
return newProgramDesc
}
......
......@@ -52,9 +52,19 @@ class TensorDesc {
}
}
init(protoTensorDesc: PaddleMobile_Framework_Proto_VarType.TensorDesc) {
dims = protoTensorDesc.dims.map{ Int($0) > 0 ? Int($0) : abs(Int($0)) }
dataType = VarTypeType.init(rawValue: protoTensorDesc.dataType.rawValue) ?? .ErrorType
init(protoTensorDesc: VarType_TensorDesc) {
// dims = protoTensorDesc.dimsArray.map{ Int64($0)! > 0 ? Int64($0) : abs(Int64($0)) }
var dimsArray = [Int]()
let dimsCount = protoTensorDesc.dimsArray.count
for i in 0..<dimsCount {
let dim = Int(protoTensorDesc.dimsArray.value(at: i)) > 0 ?Int(protoTensorDesc.dimsArray.value(at: i)) :abs(Int(protoTensorDesc.dimsArray.value(at: i)))
dimsArray.append(dim)
}
dims = dimsArray
dataType = VarTypeType.init(rawValue: Int(protoTensorDesc.dataType.rawValue)) ?? .ErrorType
}
}
......@@ -21,7 +21,6 @@
//limitations under the License.
import Foundation
import SwiftProtobuf
// If the compiler emits an error on this type, it is because this file
// was generated by a version of the `protoc` Swift plug-in that is
......
......@@ -15,6 +15,7 @@
#pragma once
#import <UIKit/UIKit.h>
#import <paddle_mobile/Framework.pbobjc.h>
//! Project version number for paddle_mobile.
//FOUNDATION_EXPORT double paddle_mobileVersionNumber;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册