You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2018/01/10 19:39:34 UTC

[GitHub] szha commented on a change in pull request #9348: support regex of collect_params()

szha commented on a change in pull request #9348: support regex of collect_params()
URL: https://github.com/apache/incubator-mxnet/pull/9348#discussion_r160778432
 
 

 ##########
 File path: python/mxnet/gluon/block.py
 ##########
 @@ -227,13 +228,39 @@ def params(self):
         children's parameters)."""
         return self._params
 
-    def collect_params(self):
+    def collect_params(self, select=None):
         """Returns a :py:class:`ParameterDict` containing this :py:class:`Block` and all of its
-        children's Parameters."""
+        children's Parameters(default), also can returns the select :py:class:`ParameterDict`
+        which match some given regular expressions.
+
+        For example, collect the specified parameter in ['conv1_weight', 'conv1_bias', 'fc_weight',
+        'fc_bias']::
+
+            model.collect_params('conv1_weight|conv1_bias|fc_weight|fc_bias')
+
+        or collect all paramters which their name ends with 'weight' or 'bias', this can be done
+        using regular expressions::
+
+            model.collect_params('.*weight|.*bias')
+
+        Parameters
+        ----------
+        select : str
+            regular expressions
+
+        Returns
+        -------
+        The selected :py:class:`ParameterDict`
+        """
         ret = ParameterDict(self._params.prefix)
-        ret.update(self.params)
+        if select is None:
+            ret.update(self.params)
+        else:
+            for name in self.params.keys():
+                if re.compile(select).match(name):
+                    ret.update({name:self.params[name]})
 
 Review comment:
   ```python
   pattern = re.compile(select)
   ret.update({name: value for name, value in self.params if pattern.match(name)}
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services