pytorch-schema.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. export const torch = {};
  2. torch.jit = torch.jit || {};
  3. torch.jit.mobile = torch.jit.mobile || {};
  4. torch.jit.mobile.serialization = torch.jit.mobile.serialization || {};
  5. torch.jit.mobile.serialization.Int = class Int {
  6. static decode(reader, position) {
  7. const $ = new torch.jit.mobile.serialization.Int();
  8. $.int_val = reader.int64(position + 0);
  9. return $;
  10. }
  11. };
  12. torch.jit.mobile.serialization.Bool = class Bool {
  13. static decode(reader, position) {
  14. const $ = new torch.jit.mobile.serialization.Bool();
  15. $.bool_val = reader.bool(position + 0);
  16. return $;
  17. }
  18. };
  19. torch.jit.mobile.serialization.Double = class Double {
  20. static decode(reader, position) {
  21. const $ = new torch.jit.mobile.serialization.Double();
  22. $.double_val = reader.float64(position + 0);
  23. return $;
  24. }
  25. };
  26. torch.jit.mobile.serialization.PerTensorAffineSchema = class PerTensorAffineSchema {
  27. static decode(reader, position) {
  28. const $ = new torch.jit.mobile.serialization.PerTensorAffineSchema();
  29. $.q_scale = reader.float64(position + 0);
  30. $.q_zero_point = reader.int32(position + 4);
  31. return $;
  32. }
  33. };
  34. torch.jit.mobile.serialization.QuantizedSchema = class QuantizedSchema {
  35. static decode(reader, position) {
  36. const $ = new torch.jit.mobile.serialization.QuantizedSchema();
  37. $.qscheme = reader.int8_(position, 4, 0);
  38. $.scale = reader.float64_(position, 6, 0);
  39. $.zero_point = reader.int32_(position, 8, 0);
  40. $.scales = reader.table(position, 10, torch.jit.mobile.serialization.TensorMetadata);
  41. $.zero_points = reader.table(position, 12, torch.jit.mobile.serialization.TensorMetadata);
  42. $.axis = reader.int32_(position, 14, 0);
  43. return $;
  44. }
  45. };
  46. torch.jit.mobile.serialization.TensorMetadata = class TensorMetadata {
  47. static decode(reader, position) {
  48. const $ = new torch.jit.mobile.serialization.TensorMetadata();
  49. $.storage_location_index = reader.uint32_(position, 4, 0);
  50. $.scalar_type = reader.int8_(position, 6, 0);
  51. $.storage_offset = reader.int32_(position, 8, 0);
  52. $.sizes = reader.array(position, 10, Int32Array);
  53. $.strides = reader.array(position, 12, Int32Array);
  54. $.requires_grad = reader.bool_(position, 14, false);
  55. $.quantized_schema = reader.table(position, 16, torch.jit.mobile.serialization.QuantizedSchema);
  56. return $;
  57. }
  58. };
  59. torch.jit.mobile.serialization.String = class String {
  60. static decode(reader, position) {
  61. const $ = new torch.jit.mobile.serialization.String();
  62. $.data = reader.string_(position, 4, null);
  63. return $;
  64. }
  65. };
  66. torch.jit.mobile.serialization.Device = class Device {
  67. static decode(reader, position) {
  68. const $ = new torch.jit.mobile.serialization.Device();
  69. $.str = reader.string_(position, 4, null);
  70. return $;
  71. }
  72. };
  73. torch.jit.mobile.serialization.List = class List {
  74. static decode(reader, position) {
  75. const $ = new torch.jit.mobile.serialization.List();
  76. $.items = reader.array(position, 4, Uint32Array);
  77. $.annotation_str = reader.string_(position, 6, null);
  78. return $;
  79. }
  80. };
  81. torch.jit.mobile.serialization.IntList = class IntList {
  82. static decode(reader, position) {
  83. const $ = new torch.jit.mobile.serialization.IntList();
  84. $.items = reader.int64s_(position, 4);
  85. return $;
  86. }
  87. };
  88. torch.jit.mobile.serialization.DoubleList = class DoubleList {
  89. static decode(reader, position) {
  90. const $ = new torch.jit.mobile.serialization.DoubleList();
  91. $.items = reader.array(position, 4, Float64Array);
  92. return $;
  93. }
  94. };
  95. torch.jit.mobile.serialization.BoolList = class BoolList {
  96. static decode(reader, position) {
  97. const $ = new torch.jit.mobile.serialization.BoolList();
  98. $.items = reader.bools_(position, 4);
  99. return $;
  100. }
  101. };
  102. torch.jit.mobile.serialization.Tuple = class Tuple {
  103. static decode(reader, position) {
  104. const $ = new torch.jit.mobile.serialization.Tuple();
  105. $.items = reader.array(position, 4, Uint32Array);
  106. return $;
  107. }
  108. };
  109. torch.jit.mobile.serialization.Dict = class Dict {
  110. static decode(reader, position) {
  111. const $ = new torch.jit.mobile.serialization.Dict();
  112. $.keys = reader.array(position, 4, Uint32Array);
  113. $.values = reader.array(position, 6, Uint32Array);
  114. $.annotation_str = reader.string_(position, 8, null);
  115. return $;
  116. }
  117. };
  118. torch.jit.mobile.serialization.TypeType = {
  119. UNSET: 0,
  120. CLASS_WITH_FIELD: 1,
  121. CUSTOM_CLASS: 2,
  122. CLASS_WITH_SETSTATE: 3,
  123. NON_OBJ: 4
  124. };
  125. torch.jit.mobile.serialization.ObjectType = class ObjectType {
  126. static decode(reader, position) {
  127. const $ = new torch.jit.mobile.serialization.ObjectType();
  128. $.type_name = reader.string_(position, 4, null);
  129. $.type = reader.uint8_(position, 6, 0);
  130. $.attr_names = reader.strings_(position, 8);
  131. return $;
  132. }
  133. };
  134. torch.jit.mobile.serialization.Object = class Object {
  135. static decode(reader, position) {
  136. const $ = new torch.jit.mobile.serialization.Object();
  137. $.type_index = reader.uint32_(position, 4, 0);
  138. $.state = reader.uint32_(position, 6, 0);
  139. $.attrs = reader.array(position, 8, Uint32Array);
  140. $.setstate_func = reader.uint32_(position, 10, 0);
  141. return $;
  142. }
  143. };
  144. torch.jit.mobile.serialization.ComplexDouble = class ComplexDouble {
  145. static decode(reader, position) {
  146. const $ = new torch.jit.mobile.serialization.ComplexDouble();
  147. $.real = reader.float64(position + 0);
  148. $.imag = reader.float64(position + 4);
  149. return $;
  150. }
  151. };
  152. torch.jit.mobile.serialization.EnumValue = class EnumValue {
  153. static decode(reader, position) {
  154. const $ = new torch.jit.mobile.serialization.EnumValue();
  155. $.type_name = reader.string_(position, 4, null);
  156. $.value = reader.uint32_(position, 6, 0);
  157. return $;
  158. }
  159. };
  160. torch.jit.mobile.serialization.Instruction = class Instruction {
  161. static decode(reader, position) {
  162. const $ = new torch.jit.mobile.serialization.Instruction();
  163. $.op = reader.int8(position + 0);
  164. $.n = reader.uint16(position + 2);
  165. $.x = reader.int32(position + 4);
  166. return $;
  167. }
  168. };
  169. torch.jit.mobile.serialization.Operator = class Operator {
  170. static decode(reader, position) {
  171. const $ = new torch.jit.mobile.serialization.Operator();
  172. $.name = reader.string_(position, 4, null);
  173. $.overload_name = reader.string_(position, 6, null);
  174. $.num_args_serialized = reader.int32_(position, 8, -1);
  175. return $;
  176. }
  177. };
  178. torch.jit.mobile.serialization.Arg = class Arg {
  179. static decode(reader, position) {
  180. const $ = new torch.jit.mobile.serialization.Arg();
  181. $.name = reader.string_(position, 4, null);
  182. $.type = reader.string_(position, 6, null);
  183. $.default_value = reader.uint32_(position, 8, 0);
  184. return $;
  185. }
  186. };
  187. torch.jit.mobile.serialization.Schema = class Schema {
  188. static decode(reader, position) {
  189. const $ = new torch.jit.mobile.serialization.Schema();
  190. $.arguments = reader.tables(position, 4, torch.jit.mobile.serialization.Arg);
  191. $.returns = reader.tables(position, 6, torch.jit.mobile.serialization.Arg);
  192. return $;
  193. }
  194. };
  195. torch.jit.mobile.serialization.DebugInfo = class DebugInfo {
  196. static decode(reader, position) {
  197. const $ = new torch.jit.mobile.serialization.DebugInfo();
  198. $.debug_handle = reader.int64s_(position, 4);
  199. return $;
  200. }
  201. };
  202. torch.jit.mobile.serialization.Function = class Function {
  203. static decode(reader, position) {
  204. const $ = new torch.jit.mobile.serialization.Function();
  205. $.qn = reader.string_(position, 4, null);
  206. $.instructions = reader.structs(position, 6, torch.jit.mobile.serialization.Instruction);
  207. $.operators = reader.tables(position, 8, torch.jit.mobile.serialization.Operator);
  208. $.constants = reader.array(position, 10, Uint32Array);
  209. $.type_annotations = reader.strings_(position, 12);
  210. $.register_size = reader.int32_(position, 14, 0);
  211. $.schema = reader.table(position, 16, torch.jit.mobile.serialization.Schema);
  212. $.debug_info = reader.table(position, 18, torch.jit.mobile.serialization.DebugInfo);
  213. $.class_type = reader.uint32_(position, 20, 0);
  214. return $;
  215. }
  216. };
  217. torch.jit.mobile.serialization.StorageData = class StorageData {
  218. static decode(reader, position) {
  219. const $ = new torch.jit.mobile.serialization.StorageData();
  220. $.data = reader.array(position, 4, Uint8Array);
  221. return $;
  222. }
  223. };
  224. torch.jit.mobile.serialization.IValueUnion = class {
  225. static decode(reader, position, type) {
  226. switch (type) {
  227. case 1: return torch.jit.mobile.serialization.Int.decode(reader, position);
  228. case 2: return torch.jit.mobile.serialization.Bool.decode(reader, position);
  229. case 3: return torch.jit.mobile.serialization.Double.decode(reader, position);
  230. case 4: return torch.jit.mobile.serialization.ComplexDouble.decode(reader, position);
  231. case 5: return torch.jit.mobile.serialization.TensorMetadata.decode(reader, position);
  232. case 6: return torch.jit.mobile.serialization.String.decode(reader, position);
  233. case 7: return torch.jit.mobile.serialization.List.decode(reader, position);
  234. case 8: return torch.jit.mobile.serialization.Tuple.decode(reader, position);
  235. case 9: return torch.jit.mobile.serialization.Dict.decode(reader, position);
  236. case 10: return torch.jit.mobile.serialization.Object.decode(reader, position);
  237. case 11: return torch.jit.mobile.serialization.IntList.decode(reader, position);
  238. case 12: return torch.jit.mobile.serialization.DoubleList.decode(reader, position);
  239. case 13: return torch.jit.mobile.serialization.BoolList.decode(reader, position);
  240. case 14: return torch.jit.mobile.serialization.Device.decode(reader, position);
  241. case 15: return torch.jit.mobile.serialization.EnumValue.decode(reader, position);
  242. case 16: return torch.jit.mobile.serialization.Function.decode(reader, position);
  243. default: return undefined;
  244. }
  245. }
  246. };
  247. torch.jit.mobile.serialization.IValue = class IValue {
  248. static decode(reader, position) {
  249. const $ = new torch.jit.mobile.serialization.IValue();
  250. $.val = reader.union(position, 4, torch.jit.mobile.serialization.IValueUnion);
  251. return $;
  252. }
  253. };
  254. torch.jit.mobile.serialization.ExtraFile = class ExtraFile {
  255. static decode(reader, position) {
  256. const $ = new torch.jit.mobile.serialization.ExtraFile();
  257. $.name = reader.string_(position, 4, null);
  258. $.content = reader.string_(position, 6, null);
  259. return $;
  260. }
  261. };
  262. torch.jit.mobile.serialization.Module = class Module {
  263. static identifier(reader) {
  264. return reader.identifier === 'PTMF';
  265. }
  266. static create(reader) {
  267. return torch.jit.mobile.serialization.Module.decode(reader, reader.root);
  268. }
  269. static decode(reader, position) {
  270. const $ = new torch.jit.mobile.serialization.Module();
  271. $.bytecode_version = reader.uint32_(position, 4, 0);
  272. $.extra_files = reader.tables(position, 6, torch.jit.mobile.serialization.ExtraFile);
  273. $.methods = reader.array(position, 8, Uint32Array);
  274. $.state_obj = reader.uint32_(position, 10, 0);
  275. $.ivalues = reader.tables(position, 12, torch.jit.mobile.serialization.IValue);
  276. $.storage_data_size = reader.int32_(position, 14, 0);
  277. $.storage_data = reader.tables(position, 16, torch.jit.mobile.serialization.StorageData);
  278. $.object_types = reader.tables(position, 18, torch.jit.mobile.serialization.ObjectType);
  279. $.jit_sources = reader.tables(position, 20, torch.jit.mobile.serialization.ExtraFile);
  280. $.jit_constants = reader.array(position, 22, Uint32Array);
  281. $.operator_version = reader.uint32_(position, 24, 0);
  282. $.mobile_ivalue_size = reader.uint32_(position, 26, 0);
  283. return $;
  284. }
  285. };