【发布时间】:2020-12-03 09:22:37
【问题描述】:
我有一个形状为 (64, 64, 2) 的 2 通道 numpy 数组作为我的 CNN 的输入。 我想构建一个自定义的损失函数,如https://www.tensorflow.org/guide/keras/train_and_evaluate 中所述:
def basic_loss_function(y_true, y_pred):
return tf.math.reduce_mean(tf.abs(y_true - y_pred))
model.compile(optimizer=keras.optimizers.Adam(),
loss=basic_loss_function)
model.fit(x_train, y_train, batch_size=64, epochs=3)
但我想要一些比这个基本的更复杂的东西。我需要做的是逆 DFT(ifft2d),我的 y_pred 和 y_true 应该是每个形状(64,64,2),两个通道是 fft2 的实部和虚部。如何正确访问 y_pred 和 y_true 通道(我猜这是某种 keras/张量层?)以 RealPart+1j*ImagPart 的形式重建一个复数(在 numpy 中它将是y_pred[:,:,0] 和 y_pred[:,:,1] ) ?
--> 总而言之,是否有人确切知道 y_pred 和 y_true 是什么类型的对象以及如何访问它们的通道/元素? (这并不容易调试,因为需要在编译好的 CNN 中运行,所以最好事先了解它)
【问题讨论】:
标签: tensorflow keras