(self, layer)
| 363 | return name |
| 364 | |
| 365 | def add_layer(self, layer): |
| 366 | self._layers.append(layer) |
| 367 | for param in layer.get_parameters(): |
| 368 | assert isinstance(param.parameter, core.BlobReference) |
| 369 | |
| 370 | self.param_to_optim[str(param.parameter)] = \ |
| 371 | param.optimizer or self.default_optimizer |
| 372 | |
| 373 | self.params.append(param.parameter) |
| 374 | if isinstance(param, layers.LayerParameter): |
| 375 | logger.info("Add parameter regularizer {0}".format(param.parameter)) |
| 376 | self.param_to_reg[param.parameter] = param.regularizer |
| 377 | elif isinstance(param, ParameterInfo): |
| 378 | # TODO: |
| 379 | # Currently, LSTM and RNNcells, which use ModelHelper instead of |
| 380 | # LayerModelHelper as super class, are called in pooling_methods |
| 381 | # In ModelHelper, regularization is not supported in create_param |
| 382 | # We will unify the way of create_param of ModelHelper and |
| 383 | # LayerModelHelper in the future. |
| 384 | logger.info('regularization is unsupported for ParameterInfo object') |
| 385 | else: |
| 386 | raise ValueError( |
| 387 | 'unknown object type besides ParameterInfo and LayerParameter: {}' |
| 388 | .format(param) |
| 389 | ) |
| 390 | |
| 391 | # The primary value of adding everything to self.net - generation of the |
| 392 | # operators right away, i.e. if error happens it'll be detected |
| 393 | # immediately. Other than this - create_x_net should be called. |
| 394 | layer.add_operators(self.net, self.param_init_net) |
| 395 | return layer.output_schema |
| 396 | |
| 397 | def get_parameter_blobs(self): |
| 398 | param_blobs = [] |
no test coverage detected