相同的脚本不同的结果

Posted

技术标签:

【中文标题】相同的脚本不同的结果【英文标题】:Same script different result 【发布时间】:2021-09-23 10:09:09 【问题描述】:

我编写了一个代码,用于计算 Matthews 相关系数 (MCC),使用 tensorflow-addons library 解决多类情况(3 类)中的语义分割问题。 我在我的个人笔记本电脑上运行脚本,得到了一个包含三个值(每个值一个)的数组,正如我所期望的那样。 然后,我在我的大学计算机中使用相同的数据和相同的 tensorflow 版本(TF 2.4.1)运行完全相同的脚本,结果只是所有三个类别的单个值(虽然不知道它是如何计算的)。 这怎么可能?无论脚本在哪台机器上运行,如何始终获取具有三个值的数组?

这些是调用 mcc 的代码行:

mcc_tf = tfa.metrics.MatthewsCorrelationCoefficient(num_classes=3)
mcc_tf.update_state(gt_array_2, pred_array_2)
mcc =  mcc_tf.result().numpy()

其中gt_array_2pred_array_2 是grounf 真值和预测数组。

【问题讨论】:

【参考方案1】:

在尝试了不同的选项之后,以防万一将来有人遇到同样的问题,您只需将 tensorflow-addons 降级到 0.12.1 版本即可生成每个类的 MCC。

【讨论】:

以上是关于相同的脚本不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

为什么我的Python脚本将Postgres表的所有行设置为相同的值?

在rails中重用相同的脚本

相同的 shell 脚本在不同的 Linux 发行版上具有不同的行为

写个脚本使用perl或shell对比oracle表数据,急啊,高分悬赏!

脚本在不同的机器上返回不同的结果

跨不同系统(机器)使用相同 random_state 的 Sklearn 不同结果