gpt4 book ai didi

python - 我可以训练具有复杂输入/输出的 Tensorflow keras 模型吗?

转载 作者:行者123 更新时间:2023-12-03 20:11:45 25 4
gpt4 key购买 nike

我正在尝试训练一个只有一个卷积层的非常简单的模型。

 def kernel_model(filters=1, kernel_size=3):
input_layer = Input(shape=(250,1))
conv_layer = Conv1D(filters=filters,kernel_size=kernel_size,padding='same',use_bias = False)(input_layer)
model = Model(inputs=input_layer,output=conv_layer)
return model

但是输入(X)、预测输出(y_pred)和true_output(y_true)都是复数。当我调用函数 model.fit(X,y_true)
有错误 TypeError: Gradients of complex tensors must set grad_ys (y.dtype = tf.complex64)
这是否意味着我必须手动编写反向传播?
我应该怎么做才能解决这个问题?谢谢

最佳答案

您的 DNN 需要通过反向传播来最小化损失函数。为了最小化某些东西,它自然需要有一个排序。复数不是有序的,而实数是有序的。
所以你一般需要一个损失函数L: Complex -> Reals
从简单的平方改变你的复值损失函数:

error = K.cast(K.mean(K.square(y_pred_propgation - y_true)),tf.complex64)

到复数的实数值||.||^2:
error = K.mean(K.square(K.abs(y_true-y_pred)))

关于python - 我可以训练具有复杂输入/输出的 Tensorflow keras 模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58868503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com