喀拉拉邦和张量流中的2 dft问题

时间:2020-03-07 18:55:18

标签: tensorflow keras fft

我正在尝试使用一个Lambda /自定义层构建一个小型CNN,以执行上一层的fft2d,例如说输入层,我正在尝试使用fft_layer类:

from keras import backend as K
from keras.engine.topology import Layer
import tensorflow as tf
from keras.models import Sequential
import numpy as np

class fft2_layer(Layer):

    def __init__(self, **kwargs):
        self.output_dim=0
        super(fft2_layer, self).__init__(**kwargs)

    def build(self, input_shape):
        # Create a trainable weight variable for this layer.
        #self.kernel = self.add_weight(name='kernel', shape=(1,) + input_shape[1:],initializer='uniform',trainable=False)
        super(fft2_layer, self).build(input_shape)  # Be sure to call this somewhere!

    def call(self, x):
        print('x SHAPE '+str(x)+'\n')
        self.output_dim=x.shape
        X=tf.keras.layers.Lambda(tf.signal.fft2d)(tf.cast(x,tf.complex64))
        print(self.output_dim)
        return X

    def compute_output_shape(self, input_shape):
        print(self.output_dim)
        return self.output_dim

小型测试网络的构建基础是:

N=64
model = Sequential()
model.add(fft2_layer(input_shape=(N, N)))
model.compile(loss='mean_squared_error', optimizer='adam')
print(model.summary())

我认为这可能是图层/数组类型或类似问题……我暂时遇到以下错误:

inbound_layers = nest.map_structure(lambda t: t._keras_history.layer,
AttributeError: 'tuple' object has no attribute 'layer'

我可能还遇到了与混合喀拉拉邦和tf ..有关的问题,这有点噩梦。

0 个答案:

没有答案