Keras:与(常数)numpy-matrix

时间:2017-03-15 10:32:15

标签: python numpy matrix neural-network keras

在Keras(神经网络库)中以某种方式可以用固定/给定numpy数组进行乘法运算吗?

我喜欢将2D卷积的输出乘以矩阵。我尝试使用Backend.dot,但它似乎不起作用(我总是得到一些错误,如numpy.ndarray对象没有属性get_shape)。

谢谢

-edit -

我找到了一个解决方案(已经是昨天,无论如何:感谢您的评论)。我喜欢将2D光谱转换为网络内的2D-mel光谱(不可训练)。二维谱图可以看作是一个大矩阵,然后可以通过矩阵乘法计算梅谱图。

长话短说:我使用了TimeDistributed Dense-Layer而没有偏见。我只是加载权重(=常数矩阵),就是这样:

# Change time / frequency axis (required for TimeDistributed)
nw = input_layer
nw = Permute((2, 1))(nw)

# Create a layer that computes the Mel spectrogram
mel_basis = librosa.filters.mel(22050, N_FFT)[:, :spectrogram_freqs] # The spectrogram has only spectrogram_freqs frequencies
mel_layer = TimeDistributed(Dense(mel_basis.shape[0], bias=False, trainable=False))
nw = mel_layer(nw)
mel_layer.set_weights([np.transpose(mel_basis)])

# Change the time / frequency axis
nw = Permute((2, 1))(nw)

0 个答案:

没有答案