Numpy 什么';np.float64和tf.float64的区别是什么?

Numpy 什么';np.float64和tf.float64的区别是什么?,numpy,tensorflow,Numpy,Tensorflow,使用TensorFlow并使用NumPy的文件加载方法时,似乎可以使用以下命令将所有内容指定为双精度: np.loadtxt(..., dtype=np.float64) tf.placeholder(tf.float64...) tf.Variable(..., dtype=tf.float64...) NumPy和TensorFlow有单独的数据类型值 如果您说np.loadtxt(…,dtype=tf.float64)则会失败并显示错误消息。好的,NP是在TF之前编写的,所以它不理解TF

使用TensorFlow并使用NumPy的文件加载方法时,似乎可以使用以下命令将所有内容指定为双精度:

np.loadtxt(..., dtype=np.float64)
tf.placeholder(tf.float64...)
tf.Variable(..., dtype=tf.float64...)
NumPy和TensorFlow有单独的数据类型值

如果您说
np.loadtxt(…,dtype=tf.float64)
则会失败并显示错误消息。好的,NP是在TF之前编写的,所以它不理解TF数据类型值

另一方面,如果您说
tf.placeholder(np.float64…
,它似乎可以正常工作。隐马尔可夫模型?TF是在NP之后写的,可能是为了理解NP的数据类型值。但是,为什么它首先有自己独立的数据类型值,而不是始终使用NP值呢


就TF而言,两者之间有什么区别?在任何地方使用
np.float64
都可以,还是会导致后续问题?(我问这个问题的原因是,我想在程序开始时设置一个参数,通过改变一行可以在单精度和双精度之间切换,如果你真的可以在任何地方使用
np.float64

NumPy的
dtype
和TensorFlow的
dtype
实际上是不同的东西(基本上,TensorFlow的
DType
s只是内部
enum
的值,而。)因此,NumPy不理解TensorFlow
DType
s。但是存在兼容对。您可以通过其属性确定您的
DType
是否与NumPy兼容。TensorFlow接受NumPy
DType
s,因为它们通过该方法清理初始化方法中的
DType
参数输入,这也是接受NumPy
dtype
s,将它们转换为正确的TensorFlow
dtype


因此,长话短说:你基本上可以在任何地方传递
np.float64
np.float32
,TensorFlow将正确处理这个问题。

NumPy的
dtype
和TensorFlow的
dtype
实际上是不同的东西(基本上,TensorFlow的
DType
s只是内部
enum
的值,而。)因此,NumPy不理解TensorFlow
DType
s。但是存在兼容对。您可以通过其属性确定您的
DType
是否与NumPy兼容。TensorFlow接受NumPy
DType
s,因为它们通过该方法清理初始化方法中的
DType
参数输入,这也是接受NumPy
dtype
s,将它们转换为正确的TensorFlow
dtype

因此,长话短说:您基本上可以在任何地方传递
np.float64
np.float32
,TensorFlow将正确处理此问题。

如果您查看,似乎在np类型和tf类型之间有一个转换表(反之亦然)。因此,如果您输入np类型,它们应该转换为tf类型。如果您查看,似乎np类型和tf类型之间有一个转换表(反之亦然)。因此,如果您输入np类型,它们应该转换为tf类型。