安装 Prophet

安装 Prophet本安装文档主要翻译整理自ProphetInstallation官方安装文档。在R上安装Prophet一、Windows系统安装Prophet前的准备工作如果是Windows系统,需要按照rstan提供的教程给R安装一个编译器。其中,最为关键的一步就是先安装Rtools。1.安装R和RStudio2.安装Rtools,确保其安装…

大家好,又见面了,我是你们的朋友全栈君。

本安装文档主要翻译整理自 Prophet Installation 官方安装文档。

在 R 上安装 Prophet

一、Windows 系统安装 Prophet 前的准备工作

如果是 Windows 系统,需要按照 rstan 提供的教程给 R 安装一个编译器。其中,最为关键的一步就是先安装 Rtools 。

1. 安装 R 和 RStudio

2. 安装 Rtools ,确保其安装目录已添加至系统环境变量中。

假如 Rtools 安装在 C 盘,则运行Sys.getenv('PATH')后,输出应包含如下所示的结果(注:原文教程中结果为”C:\Rtools\bin;C:\Rtools\gcc-4.6.3\bin;”);运行system('g++ -v')和system('where make')后输出结果正常,如下所示。

否则,请确保 Rtools 安装目录已添加至系统环境变量中。

 

1

2

3

4

5

6

7

8

9

 

> Sys.getenv(‘PATH’)

C:\\Rtools\\bin;C:\\Rtools\\mingw_64\\bin;

> system(‘g++ -v’)

Using built-in specs.

COLLECT_GCC=C:\Rtools\mingw_64\bin\G__~1.EXE

# 已省略部分输出结果

gcc version 4.9.3 (x86_64-posix-seh, Built by MinGW-W64 project)

> system(‘where make’)

C:\Rtools\bin\make.exe

3. 配置

非必须操作,不会影响 RStan 正常工作,但强烈推荐。

  • 创建一个 Makevars 文件,代码如下:
 

1

2

3

4

5

6

7

8

 

dotR <- file.path(Sys.getenv(“HOME”), “.R”)

if (!file.exists(dotR))

dir.create(dotR)

M <- file.path(dotR, “Makevars”)

if (!file.exists(M))

file.create(M)

cat(“\nCXXFLAGS=-O3 -mtune=native -march=native -Wno-unused-variable -Wno-unused-function”,

file = M, sep = “\n”, append = TRUE)

  • 如果你使用的是 Rtools33 (或更高版本),则需要运行下列代码:
 

1

2

3

 

cat(‘Sys.setenv(BINPREF = “C:/Rtools/mingw_$(WIN)/bin/”)’,

file = file.path(Sys.getenv(“HOME”), “.Rprofile”),

sep = “\n”, append = TRUE)

  • 如果你使用的 g++ 版本号在 6 或以上,且希望关掉和 Stan 不相关的一些警告信息,可以运行下列代码:
 

1

2

 

cat(“\nCXXFLAGS += -Wno-ignored-attributes -Wno-deprecated-declarations”,

file = M, sep = “\n”, append = TRUE)

  • 确认配置成功,可运行下列代码:
 

1

2

3

4

 

# 查看配置的信息

cat(readLines(M), sep = “\n”)

# 或是找到该配置文件的路径,自行打开查看

cat(M)

4. 安装 RStan

  • 安装最新版本的 RStan 及其依赖包,代码如下:
 

1

2

3

 

# 注意: 如果 https 下载不成功,可改为 http

# 确保 dependencies=TRUE ,安装依赖包

install.packages(“rstan”, repos = “https://cloud.r-project.org/”, dependencies=TRUE)

  • 如果上述过程均失败,可通过下列代码按源码安装:
 

1

2

3

 

# 注意: 可根据你想使用的内核数来更改数字“4”

Sys.setenv(MAKEFLAGS = “-j4”)

install.packages(“rstan”, type = “source”)

  • 安装完成后,重启 R 。并在载入 RStan 前,确认没有旧版本 RStan 所创建(可能是自动创建)的产物已被载入 R 中。
  • 通过运行如下代码,确认工具链已生效,代码应当返回值10:
 

1

2

3

4

 

fx <- inline::cxxfunction( signature(x = “integer”, y = “numeric” ) , ‘

return ScalarReal( INTEGER(x)[0] * REAL(y)[0] ) ;

‘ )

fx( 2L, 5 ) # 应当返回值 10

注:以上命令都是在 R 中输入运行的。

二、安装 Prophet 包

在 R 中运行如下代码:

 

1

2

 

# R

install.packages(‘prophet’)

在 Python 上安装 Prophet

一、安装 Prophet 前的准备工作

Python 中的 Prophet 最主要的依赖库是 pystan。不管什么系统,都需按照 安装教程 先安装pystan。

1. 安装 Python

推荐使用 Anaconda 。Anaconda 是一个开源的 Python 发行版本,内置conda来实现pip库管理的功能。

2. 安装 Pthon 的依赖库

如果你使用的是 Anaconda , numpy 和 cython 库已经内置在其中。但是以防万一,你也可以使用conda去安装它们:

  • 打开一个命令行程序

  • 使用conda install numpy命令去安装 numpy ; 使用conda install cython命令去安装 cython

3. 安装 PyStan 库

Mac/Linux 用户按照下述步骤安装 PyStan 即可。

  • 打开一个命令行程序
  • 使用pip install pystan去安装 PyStan

    Windows 用户请按照“Windows 系统安装 PyStan”中的步骤进行安装。

** Windows 系统安装 PyStan

如果是 Windows 系统,在安装 PyStan 前需要按照 安装教程 给 PyStan 安装一个编译器。其中,最为关键的一步就是先安装 C++ 编译器 。

Windows 系统下使用 PyStan 有下列注意事项:

  1. 需要使用 Python 3.5 或更高版本

  2. 抽取样本时,必须使用n_jobs=1(Windows 系统下的 PyStan 不能使用并行多线程运算)

  3. 安装 C++ 编译器

    进入 Visual C++ Build Tools 网页,点击“Download Visual C++ Build Tools 2015”。

    如果你遇到了安装的问题,可以去 Python维基下的 Windows Compilers 寻求解决办法。

    如果你使用的 Windows 7 系统,可能需要在安装 Visual C++ Build Tools 下先更新 Microsoft .NET Framework 。

  4. 安装 PyStan

    打开命令行程序,输入下列命令:

     

    1

     

    pip install pystan

    可通过在 python 中输入下列抽样的代码,验证安装成功:

     

    1

    2

    3

    4

    5

     

    >>> import pystan

    >>> model_code = ‘parameters {real y;} model {y ~ normal(0,1);}’

    >>> model = pystan.StanModel(model_code=model_code)

    >>> y = model.sampling(n_jobs=1).extract()[‘y’]

    >>> y.mean() # 结果应当在 0 附近

二、安装 Prophet

使用命令行程序运行下列pip命令安装即可:

 

1

2

 

# bash

$ pip install fbprophet

Ubuntu 系统安装注意事项

  1. 在 Ubuntu 16.04 系统下,使用系统内置的 python 2.7 安装上 fbprophet 后,导入 import fbprophet 时提示需要安装 matplotlib 库和 python-tk。打开一个终端,输入下列命令即可:

     

    1

    2

    3

     

    ~ sudo pip install matplotlib

    ~ sudo apt-get install tk-dev

    ~ sudo apt-get install python-tk

  2. Ubuntu 16.04 系统使用内置的 python 可以成功安装 fbprophet ,但使用 Anaconda 成功安装 PyStan 库后,检验代码无法成功运行, Prophet 库也无法正确安装:

    运行检验代码后的错误信息:

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

     

    Traceback (most recent call last):

    File “<ipython-input-28-15d1abb9774a>”, line 1, in <module>

    model = pystan.StanModel(model_code=model_code)

    File “/home/username/anaconda2/lib/python2.7/site-packages/pystan/model.py”, line 315, in __init__

    self.module = load_module(self.module_name, lib_dir)

    File “/home/username/anaconda2/lib/python2.7/site-packages/pystan/model.py”, line 54, in load_module

    return imp.load_module(module_name, *module_info)

    ImportError: /tmp/tmpgc2vTO/stanfit4anon_model_5944bb5b3a93728ca2bf_765485408593311.so: undefined symbol: _ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE

    后尝试在 Anaconda 的 Spyder 中将 console 的 python 路径更改为 /usr/bin/python,运行检验代码仍然报错:

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

     

    Traceback (most recent call last):

    File “<stdin>”, line 1, in <module>

    File “/usr/local/lib/python2.7/dist-packages/pystan/model.py”, line 315, in __init__

    self.module = load_module(self.module_name, lib_dir)

    File “/usr/local/lib/python2.7/dist-packages/pystan/model.py”, line 54, in load_module

    return imp.load_module(module_name, *module_info)

    ImportError: /home/username/anaconda2/lib/python2.7/site-packages/numexpr/../../../libstdc++.so.6: version `GLIBCXX_3.4.20′ not found (required by /tmp/tmptEazgR/stanfit4anon_model_5944b02c79788fa8ca2bf_7654287730157512986.so)

    在网上查询后,发现是由于 Anaconda 中未安装 libgcc 库。打开一个命令行,运行下列代码安装即可:

     

    1

     

    conda install libgcc

    安装 libgcc 库后,就可以成功运行检验代码了。

    机缘巧合下,发现安装 libgcc 库后,使用Anaconda 自带的 python ,也可以成功安装 PyStan 和 fbprophet 了。遂将 Spyder 中 console 的 python 路径更改为原来默认的。

待解决问题

Windows 10 系统已安装上 C++ 编译器和 PyStan 库且检验代码成功运行后,无法安装 Prophet 库:

错误信息:

 

1

 

error: command ‘C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe’ failed with exit status 2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149003.html原文链接:https://javaforall.net

赞 (1)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 【python】Windows中编译安装libsamplerate和scikits.samplerate

    【python】Windows中编译安装libsamplerate和scikits.sampleratelibrosa缘由librosa是一个音频和音乐处理的Python包,我用它来做音频的特征提取。但是在使用时,发现librosa.load将音乐文件转化为时间序列的过程中,速度实在难以忍受,cpu跑的非常高,程序好像假死的状态。查阅官方文档发现,默认情况下,librosa会使用scipy.signal进行音频信号的重采样,这在实际使用时是很慢的。如果要获得很高的性能,官方建议安装libsampl

    2022年10月17日
  • 学java用什么编译器_学习Java用什么编译软件好

    学java用什么编译器_学习Java用什么编译软件好在线的java编译器和在线运行帮助我们轻松编译代码直接在浏览器上显示。java编译器网络版成为有用的在许多情况下。例如,假设你正在编写一个java代码,但不在自己的计算机上,减少时间的浪费,可以无需下载和安装任何软件,使用免费的在线工具运行代码。也就很有帮助,如果不需要编写java代码而定期一周甚至一天几次。增加电脑的速度,减少从您的计算机未使用的软件数量。但如果不想错过它,可以尝试免费的在线编译…

    2022年6月5日
  • intellij idea输出语句快捷键_常用快捷键大全图片

    intellij idea输出语句快捷键_常用快捷键大全图片其他的快捷键还有很多,象Ctrl+G(跳转到指定行)、Ctrl+F4(关闭当前编辑页面)、Ctrl+F(搜索)等等,这些快捷键由于是各个编辑器都会提供的,而且定义的键位也都差不多,就没什么可说的了;Alt+回车导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O优化导入的类和包Alt+Ins

    2022年8月28日
  • Java高并发秒杀API(四)之高并发优化

    Java高并发秒杀API(四)之高并发优化Java高并发秒杀API(四)之高并发优化1.高并发优化分析关于并发并发性上不去是因为当多个线程同时访问一行数据时,产生了事务,因此产生写锁,每当一个获取了事务的线程把锁释放,另一个排队线程才能拿到写锁,QPS(QueryPerSecond每秒查询率)和事务执行的时间有密切关系,事务执行时间越短,并发性越高,这也是要将费时的I/O操作移出事务的原因。在本项目中高并发发生在哪?在

    2022年5月12日
  • CreatePipe 函数[通俗易懂]

    CreatePipe 函数[通俗易懂]创建管道共享数据[code="C++"]//创建匿名管道SECURITY_ATTRIBUTESsa;HANDLEhRead,hWrite;sa.nLength=sizeof(SECURITY_ATTRIBUTES);sa.lpSecurityDescriptor=NULL;sa.bInheritHandle=TRUE;CreatePipe(…

    2022年7月26日
  • ps测量精灵图[通俗易懂]

    ps测量精灵图[通俗易懂]1.调出图片信息2.测量图片大小、3.把鼠标放在需要用到的小图片的左上角  精灵图的测量:B站中有详细的教程    第43集  京东项目精灵图的使用:B站精灵图的使用第24集   李江南讲解精灵图第44集  定位口诀:子绝父相(孩子是绝对定位,父亲是相对定位;)…

    2022年6月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号