当前位置: 首页 > news >正文

timesFM安装记录

1、conda命令安装环境

conda create -n timesFM_test python=3.10

激活虚拟环境timesFM_test

在该虚拟环境下进行以下几步

2、安装pyenv

curl https://pyenv.run | bash

3、修改~/.bashrc

在文件中增加以下几行

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

4、刷新环境变量

source ~/.bashrc

5、检查pyenv是否安装完成

pyenv --version

6、安装poetry

pip install poetry
poetry --version # 检查是否安装成功

7、安装python

①python 3.10.15(PAX(或JAX)版本:timesfm-2.0-500m-jax)

pyenv install 3.10.15
pyenv versions

显示3.10.15

②python 3.11.11(pytorch版本:timesfm-2.0-500m-pytorch)

pyenv install 3.11.11
pyenv versions

8、指定项目使用的 Python 版本(此处为 3.10.15)的命令

必须在指定文件夹的目录下

poetry env use 3.10.15
poetry lock # 重新解析依赖关系并更新poetry.lock
poetry install -E  pax

poetry install -E  pax

安装项目依赖,并额外安装名为 pax 的可选依赖组

可能会出现:

这个时候可以通过pip安装

pip install scipy --index-url https://mirrors.aliyun.com/pypi/simple/
poetry sync

 但是有些是可以安装成功的,就比如numpy、certifi、pygments可以安装成功

scipy总是安装失败,可能是通过 pip install --index-url 直接安装的 scipy 仅存在于 Python 环境,但 Poetry 依赖 pyproject.toml 和 poetry.lock 管理依赖。若 scipy 未在 Poetry 配置中声明,执行 poetry install 时会重新安装以保持一致性。

或者可以尝试:

配置原名称和URL,通过源名称安装

poetry source add aliyun https://mirrors.aliyun.com/pypi/simple/
poetry add nvidia-nvjitlink-cu12 --source aliyun

之后:

9、指定项目使用的 Python 版本(此处为 3.11.11)的命令

pyenv local 3.11.11
poetry env use 3.11.11
poetry lock
poetry install -E torch

10、需要安装timesfm

pip install timesfm[torch] -i 镜像
pip isntall timesfm[pax] -i 镜像

11、运行程序

from datetime import datetime, timedeltaimport numpy as np
import pandas as pd
import pytest
import matplotlib.pyplot as plt
import timesfmdata_1 = {'unique_id': ['ID_1'] * 144,'ds': pd.date_range(start='2018-12-01', periods=144, freq='MS').tolist(),'values': [112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118, 115,126, 141, 135, 125, 149, 170, 170, 158, 133, 114, 140, 145, 150,178, 163, 172, 178, 199, 199, 184, 162, 146, 166, 171, 180, 193,181, 183, 218, 230, 242, 209, 191, 172, 194, 196, 196, 236, 235,229, 243, 264, 272, 237, 211, 180, 201, 204, 188, 235, 227, 234,264, 302, 293, 259, 229, 203, 229, 242, 233, 267, 269, 270, 315,364, 347, 312, 274, 237, 278, 284, 277, 317, 313, 318, 374, 413,405, 355, 306, 271, 306, 315, 301, 356, 348, 355, 422, 465, 467,404, 347, 305, 336, 340, 318, 362, 348, 363, 435, 491, 505, 404,359, 310, 337, 360, 342, 406, 396, 420, 472, 548, 559, 463, 407,362, 405, 417, 391, 419, 461, 472, 535, 622, 606, 508, 461, 390,432]
}
train_data = pd.DataFrame(data_1)
# tfm = timesfm.TimesFm(
#     hparams=timesfm.TimesFmHparams(
#         backend="gpu",
#         per_core_batch_size=32,
#         horizon_len=18,
#         # use_positional_embedding=False,
#     ),
#     checkpoint=timesfm.TimesFmCheckpoint(
#         huggingface_repo_id="google/timesfm-2.0-500m-jax"),
# )
tfm = timesfm.TimesFm(hparams=timesfm.TimesFmHparams(backend="gpu",per_core_batch_size=32,horizon_len=18,use_positional_embedding=False,num_layers=50,),checkpoint=timesfm.TimesFmCheckpoint(version = 'torch',path ="/home/sjw/TimesFM_main/timesfm_main/timesfm-2.0-500m-pytorch/torch_model.ckpt",local_dir= "/home/sjw/TimesFM_main/timesfm_main/timesfm-2.0-500m-pytorch"),# checkpoint=timesfm.TimesFmCheckpoint(#     huggingface_repo_id="google/timesfm-2.0-500m-jax"),)forecast = tfm.forecast_on_df(inputs=train_data,freq='MS',num_jobs=-1,
)plt.figure(figsize=(14, 8))
plt.plot(train_data['ds'], train_data['values'], label='Actuals', marker='o', linestyle='-', color='blue')
plt.plot(forecast['ds'], forecast['timesfm'], label='Forecast', marker='o', linestyle='--', color='orange')
plt.fill_between(forecast['ds'], forecast['timesfm-q-0.1'], forecast['timesfm-q-0.9'], color='orange', alpha=0.2,label='90% Confidence Interval')
plt.title('Actuals and Forecasts with Prediction Intervals', fontsize=16)
plt.xlabel('Date', fontsize=14)
plt.ylabel('Values', fontsize=14)
plt.legend(fontsize=12)
plt.grid(True)
plt.tight_layout()
plt.savefig('forecast_plot.png', dpi=300, bbox_inches='tight')
plt.show()

运行结果:

http://www.dtcms.com/a/293046.html

相关文章:

  • JavaWeb学习打卡10(HttpServletRequest详解应用、获取参数,请求转发实例)
  • PyTorch常用工具
  • 我的第一个开源项目 -- 实时语音识别工具
  • C++中的list(2)简单复现list中的关键逻辑
  • 水电站自动化升级:Modbus TCP与DeviceNet的跨协议协同应用
  • CMake实践:CMake3.30版本之前和之后链接boost的方式差异
  • 渗透部分总结
  • 从 COLMAP 到 3D Gaussian Splatting
  • vue2的scoped 原理
  • Flex/Bison(腾讯元宝)
  • 开源AI智能客服、AI智能名片与S2B2C商城小程序在客户复购与转介绍中的协同效应研究
  • 禁食时长与关键生物反应的相对强度对照表
  • syscall函数用法
  • Java 中 String 类的常用方法
  • JavaScript的进阶学习--函数和基本对象的解析
  • 16-MSTP
  • 加速度计输出值的正负号与坐标系正方向相反
  • 基于 Agent 的股票分析工具
  • Windows Server 设置MySQL自动备份任务(每日凌晨2点执行)
  • 洛谷刷题7..22
  • 贪心算法Day3学习心得
  • VBScript 拖拽文件显示路径及特殊字符处理
  • gitlab私服搭建
  • 根据数据,判断神经网络所需的最小参数量
  • 如何搭建appium工具环境?
  • 嵌入式学习-土堆目标检测(2)-day26
  • 浏览器解码顺序xss
  • UE5 UI WarpBox 包裹框
  • Leetcode力扣解题记录--第41题(原地哈希)
  • 【Pytest】从配置到固件的使用指南