Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 修改Tensorflow(Keras)优化器(用于分层学习率乘数)_Python_Tensorflow_Keras - Fatal编程技术网

Python 修改Tensorflow(Keras)优化器(用于分层学习率乘数)

Python 修改Tensorflow(Keras)优化器(用于分层学习率乘数),python,tensorflow,keras,Python,Tensorflow,Keras,我正在尝试在tensorflow(keras)中训练一名CNN,每层有不同的学习率。由于tensorflow中不包含此选项,我正在尝试修改一个已经存在的优化器,如本文所建议的 当我简单地复制在中找到的SGD优化器的源代码时 “C:\Users\user\Anaconda3\envs\tf\u gpu\Lib\site packages\tensorflow\u core\python\keras\optimizers.py” (没有任何修改)到我的脚本中,我尝试运行它,但得到以下错误: Type

我正在尝试在tensorflow(keras)中训练一名CNN,每层有不同的学习率。由于tensorflow中不包含此选项,我正在尝试修改一个已经存在的优化器,如本文所建议的

当我简单地复制在中找到的SGD优化器的源代码时

“C:\Users\user\Anaconda3\envs\tf\u gpu\Lib\site packages\tensorflow\u core\python\keras\optimizers.py”

(没有任何修改)到我的脚本中,我尝试运行它,但得到以下错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-2-757ea125a090> in <module>
----> 1 opti = SGD(lr=0.001, momentum=0.9, nesterov=False)

<ipython-input-1-dad895e21911> in __init__(self, lr, momentum, decay, nesterov, **kwargs)
     63 
     64   def __init__(self, lr=0.01, momentum=0., decay=0., nesterov=False, **kwargs):
---> 65     super(SGD, self).__init__(**kwargs)
     66     with K.name_scope(self.__class__.__name__):
     67       self.iterations = K.variable(0, dtype='int64', name='iterations')

TypeError: __init__() missing 1 required positional argument: 'name'
它工作得很好,所以我有点害怕卸载现在运行的tensorflow版本并从源代码处编译它


另外,如果您知道如何使用tensorflow单独修改每一层的学习率的其他方法,请告诉我。

这可能是由于实施不当造成的

我通过简单地添加一个name参数
name='sgd'
解决了这个问题

opti=SGD(lr=0.001,动量=0.9,nesterov=False,name='SGD')

让我知道这是否有效

这可能是由于实施不当造成的

我通过简单地添加一个name参数
name='sgd'
解决了这个问题

opti=SGD(lr=0.001,动量=0.9,nesterov=False,name='SGD')

让我知道这是否有效

您的更改是在C级别,因此我认为您必须从源代码重新编译当只修改Python代码时,不需要从源代码编译TF,因此即使您修改安装在PC中的TF Python代码,您也不需要构建它。请共享您正在运行的代码。无法重现您的错误,我复制了SGD实现,继承了优化器,它对我有效。您的更改是在C级别,因此我认为您必须从源代码重新编译当只修改Python代码时,不需要从源代码编译TF,因此,即使您修改了安装在PC中的TF Python代码,您也不需要构建它。请共享您正在运行的代码。无法重现您的错误,我复制了SGD实现,继承了优化器,它对我有效。
conda install tensorflow-gpu