@nocollapse
(
cls: serialization.SerializableConstructor<T>,
config: serialization.ConfigDict,
customObjects = {} as serialization.ConfigDict,
fastWeightInit = false)
| 1004 | /* See parent class for JsDoc */ |
| 1005 | /** @nocollapse */ |
| 1006 | static override fromConfig<T extends serialization.Serializable>( |
| 1007 | cls: serialization.SerializableConstructor<T>, |
| 1008 | config: serialization.ConfigDict, |
| 1009 | customObjects = {} as serialization.ConfigDict, |
| 1010 | fastWeightInit = false): T { |
| 1011 | let configArray: serialization.ConfigDictArray; |
| 1012 | let extraModelConfig: serialization.ConfigDict = {}; |
| 1013 | if (config instanceof Array) { |
| 1014 | if (!(config[0].className != null) || |
| 1015 | config[0]['className'] === 'Merge') { |
| 1016 | throw new ValueError('Legacy serialization format not supported yet.'); |
| 1017 | } |
| 1018 | configArray = config; |
| 1019 | } else { |
| 1020 | util.assert( |
| 1021 | config['layers'] != null, |
| 1022 | () => |
| 1023 | `When the config data for a Sequential model is not an Array, ` + |
| 1024 | `it must be an Object that contains the 'layers' field.`); |
| 1025 | configArray = config['layers'] as serialization.ConfigDictArray; |
| 1026 | delete config['layers']; |
| 1027 | extraModelConfig = config; |
| 1028 | } |
| 1029 | |
| 1030 | const model = new cls(extraModelConfig); |
| 1031 | if (!(model instanceof Sequential)) { |
| 1032 | throw new NotImplementedError( |
| 1033 | `Sequential.fromConfig called on non-Sequential input: ${model}`); |
| 1034 | } |
| 1035 | for (const conf of configArray) { |
| 1036 | const customObjects: serialization.ConfigDict = undefined; |
| 1037 | const layer = deserialize( |
| 1038 | conf as serialization.ConfigDict, customObjects, |
| 1039 | fastWeightInit) as Layer; |
| 1040 | if (fastWeightInit) { |
| 1041 | layer.setFastWeightInitDuringBuild(true); |
| 1042 | } |
| 1043 | model.add(layer); |
| 1044 | } |
| 1045 | return model; |
| 1046 | } |
| 1047 | |
| 1048 | /** |
| 1049 | * Setter used for force stopping of LayersModel.fit() (i.e., training). |
nothing calls this directly
no test coverage detected