pytorch中是否有_keras_shape的等效项?

问题描述

我正在尝试将一些代码从keras实现转换为pytorch等效。我对f_real._keras_shape = self.kernel_shape的这项工作不甚了解。如我所见,_keras_shape似乎是'self.kernel'的自动生成属性-已为其分配了kernel_shape值。在keras中,我认为内核被初始化为某种张量占位符。这是代码

from keras.layers import Layer
from keras import backend as K
class cconv(Layer):
.......
  self.kernel = self.add_weight(
        self.kernel_shape,initializer=kern_init,name='kernel',regularizer=self.kernel_regularizer,constraint=self.kernel_constraint
    )
  real = self.kernel[:,:,:self.filters]
  imag = self.kernel[:,self.filters:]

在这两行中苦苦挣扎:

  real._keras_shape = self.kernel_shape
  imag._keras_shape = self.kernel_shape

到目前为止,我得到了:

  self.kernel = nn.Parameter(
        self.kernel_shape,initializer=self.kernel_initializer,self.filters:]

是否有一个与'_keras_shape'等效的torch.nn.Parameter或任何替代方法

edit:我做了一些挖掘工作,但似乎找不到此'_keras_shape'属性起源的确切文件!有一个似乎很相关的Variable类(无法触及底部),即keras.backend.py中的一些代码-

from tensorflow.python.ops import variables as variables_module

def variable(value,dtype=None,name=None,constraint=None):

    v = variables_module.Variable(
        value,dtype=dtypes_module.as_dtype(dtype),name=name,constraint=constraint)
    if isinstance(value,np.ndarray):
        v._keras_shape = value.shape
    elif hasattr(value,'shape'):
        v._keras_shape = int_shape(value)
    track_variable(v)
    return v

variables.py file没有道理-找不到_keras_shape回到多远的位置...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)