tf.linspace和np.linspace的对比分析

解释:

tf.linspace(start, end, num):这个函数主要的参数就这三个,start代表起始的值,end表示结束的值,num表示在这个区间里生成数字的个数,生成的数组是等间隔生成的。start和end这两个数字必须是浮点数,不能是整数,如果是整数会出错的,请注意!

np.linspace(start, end, num):主要的参数也是这三个,我们平时用的时候绝大多数时候就是用这三个参数。start代表起始的值,end表示结束的值,num表示在这个区间里生成数字的个数,生成的数组是等间隔生成的。start和end这两个数字可以是整数或者浮点数!

分析:

这两个函数的功能是差不多的,如果就是用这三个参数,就是相同的,不过生成的结果有一点点十分微小的区别,估计是在近似的时候产生的,也就是近似的方式不同,或者是精度不同产生的,产生间隔的准则是一样的,间隔的计算公式为(end - start) /( num - 1)。产生的num个数字里面,包含了起始值和结束值。

例如:

import tensorflow as tf
import numpy as np
 
A = tf.linspace(1.0, 20.0, 10)
B = np.linspace(1, 20, 10)
 
print A.eval(session=tf.Session())
print B

结果:

[  1.           3.11111116   5.22222233   7.33333349   9.44444466
  11.55555534  13.66666698  15.77777863  17.88888931  20.        ]
[  1.           3.11111111   5.22222222   7.33333333   9.44444444
  11.55555556  13.66666667  15.77777778  17.88888889  20.        ]
--------------------- 
作者:UESTC_C2_403 
来源:CSDN 
原文:https://blog.csdn.net/UESTC_C2_403/article/details/76042152 
版权声明:本文为博主原创文章,转载请附上博文链接!

结果不一样的原因是默认精度不同。NumPy的默认精度是np.float64,而TensorFlow的默认精度是tf.float32。如果把第5行代码改成

 
  1.  
  2. B = np.linspace(1, 20, 10, dtype=np.float32)

  3.  

输出结果就一样了。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值