gpt4 book ai didi

neural-network - Keras sample_weight 数组错误

转载 作者:行者123 更新时间:2023-12-04 06:52:29 25 4
gpt4 key购买 nike

我正在研究脑损伤分割问题,我正在尝试使用受以下启发的代码来实现 Unet:https://github.com/jocicmarko/ultrasound-nerve-segmentation

我试图克服的问题之一是类平衡(更多的非病变体素而不是病变体素)。我尝试使用 class_balance,但没有用,所以现在我尝试使用 sample_weight,这也给了我各种各样的错误。

我尝试的第一件事是将 sample_weight_mode 设置为 temporal 并输入与我的目标数据形状相同的权重矩阵:

target_data.shape -> (n_samples,512 rows/pixels, 512 cols/pixels, 1 channel)
Weight_map.shape -> (n_samples,512 rows/pixels, 512 cols/pixels, 1 channel)

输出:

_ValueError: Found a sample_weight array with shape (100, 512, 512, 1). In order to use timestep-wise sample weighting, you should pass a 2D sample_weight array.*

我尝试的第二件事是展平样本数组,使其成为这样的形状:

Weight_map.shape -> (n_samples,512x512x1).

输出:

ValueError: Found a sample_weight array with shape (100, 262144) for an input with shape (100, 512, 512, 1). sample_weight cannot be broadcast.*

接下来,我尝试遵循 uschmidt83 (here) 的建议,并将模型的输出与相应的目标数据一起展平。

last_layer = keras.layers.Flatten()(second_last_layer)

target_data.shape -> (n_samples,512x512x1).
Weight_map.shape -> (n_samples,512x512x1).

输出:

ValueError: Found a sample_weight array for an input with shape (100, 262144). Timestep-wise sample weighting (use of sample_weight_mode="temporal") is restricted to outputs that are at least 3D, i.e. that have a time dimension.*

奇怪的是,即使我设置了 sample_weight=None,我仍然会遇到与上面相同的错误。

关于如何修复此 sample_weight 错误的任何建议?这是重现错误的基本代码: https://gist.github.com/andreimouraviev/2642384705034da92d6954dd9993fb4d

此外,如果您对如何处理类不平衡问题有任何建议,请告诉我。

最佳答案

权重需要是一个一维数组,因为目标有一个额外的 channel ,比如输入。

您可以尝试使用以下维度的 sample_weight_mode=temporal 吗:

input_image  ->  (n_samples, 512, 512, 1)
target_label -> (n_samples, 262144, 1)
weight_map -> (n_samples, 262144)

以下链接包含有关类别权重的信息: https://github.com/fchollet/keras/issues/2115

关于neural-network - Keras sample_weight 数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44747288/

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