1

我正在 TensorFlow 中编写一个自定义层来计算 PCA。当我将形状(None, 150, 300)的输入提供给该层时,我会收到形状为(150, 150, 100)且n_components = 100的输出。

我怎样才能保持批量大小=无?我想要的输出是:(无,150,100)。

def call(self, input_data):
            covariance_matrix = tfp.stats.covariance(input_data)
        
            self.eigen_values, self.eigen_vectors = tf.linalg.eig(covariance_matrix)
            self.eigen_values = tf.cast(self.eigen_values, dtype=tf.float32)
            self.eigen_vectors = tf.cast(self.eigen_vectors, dtype=tf.float32)
    
            self.projection_matrix = tf.transpose(tf.transpose(self.eigen_vectors)[:][-self.n_components:])
        
            output_data = tf.matmul(input_data, self.projection_matrix)
            
            return output_data
4

0 回答 0