IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> PyMC3安装以及Hello Project -> 正文阅读

[人工智能]PyMC3安装以及Hello Project

目录

1. PyMC3安装

2. Hello Project

????????(1) 导入所需要的各种包

????????(2)生成观测数据

????????(3) 构建模型

????????(4) Perform the inference?

?????????(5) 后验概率信息分析


1. PyMC3安装

????????参照[1], 按照以下步骤进行安装(难得的一帆风顺):

  1. conda create -n pm3env -c conda-forge "python=3.8" libpython mkl-service m2w64-toolchain numba python-graphviz scipy
  2. conda activate pm3env
  3. pip install pymc3

????????原文没有上面的第2步,应该是漏掉了。没有第2步的话,所安装的pymc3就不在pm3env中了。

? ? ? ? 一开始没有执行第2步直接安装pymc3,发现错了后把pymc3从base环境删除掉。????????

conda uninstall pymc3

????????咦?找不到pymc3? 运行conda list是可以看到列表中明明包含pymc3的。喔,想起来刚才用的是pip安装的,而不是conda。也许解铃还须系铃人,要用pip才能卸载掉用pip安装的包吧。? ? ??

pip uninstall pymc3

????????嗯,果然。但是,问题就来了:

  1. conda安装与pip安装有什么区别呢?
  2. 既然是在conda的环境中,为什么要用pip安装而不是用conda安装呢?
  3. 为什么不能用conda卸载pip安装的包,尽管conda list可以显示出所安装的包呢?

????????Anyway,卸载base环境下的pymc3后执行conda activate pm3env后再在pm3env中执行pip install pymc3,然后再执行import pymc3,这次没有报错。

? ? ? ? 接着在pm3env中试着想打开jupyter,发现不行。意识到在pm3env中要另行安装jupyter:? ? ??

conda install jupyter

????????但是这样貌似很蛋疼,岂不是每一个virtualenv中都要独立安装一套所有需要使用的包?

2. Hello Project

????????本例取自于[2],目的仅在于看看安装好的PyMC3环境是否能够正常工作。

????????(1) 导入所需要的各种包

import numpy as np
import pymc3 as pm
import scipy.stats as stats
from matplotlib import pyplot as plt
from IPython.core.pylabtools import figsize
#import theano.tensor as tt  # Unused. It is OK to comment out it.

????????(2)生成观测数据

? ? ? ? 真正的项目中当然是从实际观测中获取数据。但是这里只是做个实验,所以用已知的参数基于软件的方式生成随机数,然后再进行贝叶斯推断看看所估计得到的参数值与生成数据时所使用的参数值(称为ground truth)进行对比可以确认贝叶斯推断的表现如何。这是常用的算法性能评估手段。

# Observed data generation
np.random.seed(123)
trials   = 20
theta_gt = 0.35 # unknown value in a real experiment. 'gt' means ground-truth
data     = stats.bernoulli.rvs(p=theta_gt, size=trials)
print(data)

????????(3) 构建模型

# Model construction and inference
with pm.Model() as hello_model:
    theta = pm.Beta('theta', alpha=1., beta=1.)
    y = pm.Bernoulli('y', p=theta, observed=data)

????????(4) Perform the inference?

with hello_model:
#    step = pm.Metropolis()
#    trace = pm.sample(10000, tune=5000,random_seed=123)
    trace = pm.sample(1000, random_seed=123)

?????????以上代码执行后显示以下信息,至少看上去正常工作了(warning先不管反正看不懂^-^)

?????????(5) 后验概率信息分析

figsize(12.5, 10)
plt.hist(theta_samples, bins=30, density=True)
plt.title(r"Posterior distributions of $\theta$")

?????????生成如下关于theta的后验概率分布图(归一化后的直方图):

?

?????????用arviz可以生成更炫一点的分析图,如下所示:

import arviz as az
az.summary(trace)
az.plot_posterior(trace)
az.plot_posterior(trace, ref_val=0.5)

????????生成图如下所示:?

?

????????好了,走完一个最基本的基于PyMC3的贝叶斯推断的全过程。 其中细节容我慢慢咀嚼,有了学习心得再来补充。

? ? ? ? 但是,有一个问题是,以上代码在jupyter notebook中运行正常。但是作为python脚本在Anaconda Prompt(of course in pm3env)中以"python HelloPyMC.py"就会报告运行错误,如下所示:

?

到这里为止跟jupyter notebook中运行输出相同,然后就开始出错了,最后报错如下:

?

????????然后就死掉了,“Ctrl+C”?都无法退出,只能强行关闭窗口。原因待查。难道跟什么多线程啥的有关系?

[Reference]

[1] https://github.com/pymc-devs/pymc3/wiki/Installation-Guide-(Windows)

[2] How to build probabilistic models with PyMC3 in Bayesian - ThePythonGuru.com

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:05:27  更:2021-09-27 14:05:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:47:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码