ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

TypeError: 'float' object cannot be interpreted as an integer

2020-08-08 13:31:16  阅读:273  来源: 互联网

标签:TypeError object float 整数 interpreted 100 data LSTM python2


一. 问题背景

       最近想实践“字嵌入+LSTM+CRF”的分词方法,由于比较懒散, 没有找到字向量的资源,然后,就自己用word2vec和知乎的一次评测数据训练了一份字向量。然后,在搭建LSTM的过程中,执行一下代码时:

  1.   data = np.array(data)
  2.   data = data.reshape((100/2, 16, 8))

        遇到了这个问题:

TypeError: 'float' object cannot be interpreted as an integer

       emmm,这是咋回事, 100/2明明是整数啊

二. 原因

       后来在网上查阅了一些资料,发现原来是python3的问题, python2是不存在这种问题滴,参考的文章链接请看参考

       具体是怎么回事呢?

       原来是这样的,在python2中, '整数 / 整数 = 整数',以上面的 100 / 2 就会等于 50, 并且是整数。

       而在python3中, ‘整数/整数 = 浮点数’, 也就是100 / 2 = 50.0, 不过,使用 '//'就可以达到原python2中'/'的效果。

三. 解决方案

       既然知道原因了, 解决方案就有很多了, 可以进行强制转换,把浮点型转变成整型,也可以直接使用'//'进行运算。

四. 参考

https://blog.csdn.net/amoscn/article/details/78321137

感谢大大的博客。

标签:TypeError,object,float,整数,interpreted,100,data,LSTM,python2
来源: https://www.cnblogs.com/duzetao/p/13457464.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有