TypeError: 'float' object cannot be interpreted as an integer
一. 问题背景
最近想实践“字嵌入+LSTM+CRF”的分词方法,由于比较懒散, 没有找到字向量的资源,然后,就自己用word2vec和知乎的一次评测数据训练了一份字向量。然后,在搭建LSTM的过程中,执行一下代码时:
-
data = np.array(data)
-
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
感谢大大的博客。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?