You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装并导入theano.tensor时遇numpy AttributeError问题求助

解决Theano导入时的np.bool AttributeError问题

错误原因

这个错误是由于NumPy 1.20及以上版本弃用了np.bool这个别名(原指向内置bool),而旧版Theano仍在调用这个已被移除的API,导致导入失败。

解决方案

以下三种方法任选其一即可:

1. 降级NumPy到兼容版本

卸载当前高版本NumPy,安装Theano兼容的旧版本:

pip uninstall -y numpy
pip install numpy==1.19.5

2. 安装Theano开发版(已修复该问题)

Theano的开发分支已经适配了NumPy的新版本,直接安装开发版即可:

pip uninstall -y theano
pip install git+https://github.com/Theano/Theano.git

3. 添加临时兼容补丁(无需修改版本)

在导入Theano之前,手动将np.bool映射到官方推荐的np.bool_,添加以下代码即可:

import numpy as np
# 临时兼容np.bool别名
np.bool = np.bool_

修改后的完整代码示例:

import numpy as np
# 临时兼容补丁
np.bool = np.bool_

import theano.tensor as tt
import pymc as pm

N = 100
with pm.Model() as model:
    p = pm.Uniform("freq_cheating", 0, 1)
with model:
    true_answers = pm.Bernoulli("truths", p, shape=N, testval=np.random.binomial(1, 0.5, N))
with model:
    first_coin_flips = pm.Bernoulli("first_flips", 0.5, shape=N, testval=np.random.binomial(1, 0.5, N))

with model:
    second_coin_flips = pm.Bernoulli("second_flips", 0.5, shape=N, testval=np.random.binomial(1, 0.5, N))

with model:
    val = first_coin_flips*true_answers + (1 - first_coin_flips)*second_coin_flips
    observed_proportion = pm.Deterministic("observed_proportion", tt.sum(val)/float(N))

内容的提问来源于stack exchange,提问作者Karol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:07:38