如何解决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 举报,一经查实,本站将立刻删除。