为什么Keras中的to_categorical()使用float64而不是float32?

时间:2018-01-28 13:18:55

标签: numpy machine-learning neural-network deep-learning keras

根据我的测试,Keras中的to_categorical()会返回ndarray float64。我想知道为什么默认情况下不是float32,可以由GPU处理。据我所知,GPU无法处理float64to_categorical()的{​​{3}}并未说明返回类型应该是什么。所以,我想它可能是一个实现细节,而不是协议/接口的一部分。总结一下,有两个问题:

  1. 为什么float64而不是float32
  2. 是否应该依赖返回类型,因为它可能不是接口的一部分,因此可能会发生变化?如果是这种情况,如果关注类型,则应始终追加astype()来电。

1 个答案:

答案 0 :(得分:2)

  1. 问题在于numpy.zeros中的to_categorical函数used。默认情况下,它会创建一个类型为float64的数组。

  2. 不幸的是,我建议您测试解决方案以解决当前数据类型不保证的问题。通常情况下 - 大多数变换器都会以提供的格式返回数据,因此只要您的基础数据位于float32 - 它就会保留float32。但是有一些边缘情况,如to_categorical

  3. 在我的项目中,我使用docker来保持我用于培训/推理的所有机器的一致性。