libcity笔记:详细流程(以DeepMove为例)

0 前置操作

这边我选择了gowalla的前1000条数据做例子:

0.1 生成样例dyna

import pandas as pd
geo=pd.read_csv('/home_nfs/liushuai/Bigscity-LibCity/raw_data/gowalla_test/gowalla.dyna')geo_tst=geo.iloc[:1000,:]
geo_tst

 

geo_tst.to_csv('/home_nfs/liushuai/Bigscity-LibCity/raw_data/gowalla_test/gowalla.dyna', index=False)

 0.2 生成相应geo

geo=pd.read_csv('/home_nfs/liushuai/Bigscity-LibCity/raw_data/gowalla/gowalla.geo')
geo=geo[geo['geo_id'].isin(set(geo_tst.location))]
geo.to_csv('/home_nfs/liushuai/Bigscity-LibCity/raw_data/gowalla_test/gowalla.geo')

 

0.3 修改libcity/config/task_config.json

1 主调用

 python run_model.py --task traj_loc_pred --model DeepMove --dataset gowalla --batch_size=5
  • 有task、dataset、model三个必须命令行参数
  • batch_size一个可选命令行参数
  • 没有confg_file 

加载所有参数

1.1 libcity/utils/argument_list.py/str2bool

  • 将字符串表示的布尔值转换为 Python 中的布尔值。
    • 首先检查输入的参数是否已经是布尔值类型,如果是,则直接返回该值,无需转换。

    • if s.lower() in ('yes', 'true')::检查字符串是否是 'yes''true',如果是,则返回 True

    • elif s.lower() in ('no', 'false')::检查字符串是否是 'no''false',如果是,则返回 False

    • else::如果字符串既不是 'yes'/'true' 也不是 'no'/'false',则抛出 argparse.ArgumentTypeError 异常,表示期望一个布尔值。

1.2 libcity/utils/argument_list.py/add_general_args

2 libcity/pipeline/pipeline.py/run_model

2.1 libcity/config/config_parser.py/ConfigParser

2.1.1 构造函数

libcity笔记:libcity/config/config_parser.py/ConfigParser-CSDN博客

2.1.2 get

libcity笔记:libcity/config/config_parser.py/ConfigParser-CSDN博客

2.2 libcity/utils/utils.py/get_logger

libcity笔记:libcity/utils/utils.py-CSDN博客

 然后连着两行logger.info

2.3 set_random_seed

libcity笔记:libcity/utils/utils.py-CSDN博客

2.4 get_dataset

libcity 笔记:libcity/data/utils.py-CSDN博客

得到相应的TrajectoryDataset

  • 得到dataset_cache和cut_traj的json文件,缓存处理的轨迹数据

2.5 dataset.get_data()

2.5.1 cutter_filter

  • 由于之前没有dataset_cache和cut_traj的缓存json文件,先调用cuttter_filter【 cut_data = self.cutter_filter()】
    • 得到的结果,是一个字典,key是user_id,value是一系列二维数组组成的列表,每个二维数组的每一行是“dyna_id    type    time    entity_id    location”

2.5.2 encode_traj

  • 【encoded_data = self.encode_traj(cut_data)】
    • {
                  'data_feature': self.encoder.data_feature,
                  'pad_item': self.encoder.pad_item,
                  'encoded_data': encoded_data
              }的一个字典,其中:

2.5.2  divide_data

  • train_data, eval_data, test_data = self.divide_data()
    • 其中每一个元素也就是

 2.5.3 generate_dataloader_pad

  • 传入的参数
    • train_data, eval_data, test_data
    • self.encoder.feature_dict,
    • self.config['batch_size'],
    • self.config['num_workers'],
    • self.pad_item,
    • self.encoder.feature_max_len
      • 没有设置,就是默认的{}
  • libcity 笔记:libcity/data/utils.py-CSDN博客

2.6 get_data_feature

Libcity笔记:libcity/data/dataset/trajectory_encoder/standard_trajectory_encoder.py-CSDN博客

2.7 get_model

从ibcity/model/trajectory_loc_prediction/DeepMove.py 中生成 DeepMove类

2.8 get_executor

2.8.1 get_evaluator

TrajLocPredEvaluator

libcity笔记:libcity/evaluator/traj_loc_pred_evaluator.py-CSDN博客

2.8.2 self.metrics

这里是'Recall@5'

2.8.3 获取优化器和调度器

Adam+ReduceLROnPlateau

2.9 executor.train

  • 对每一个epoch:

2.9.1 run

executor.run(train_dataloader, self.model,
                                            self.config['learning_rate'], self.config['clip'])

loss_func是Deepmove的calculate_loss

然后就是逐batch训练模型

2.9.2 剩余操作

  • 计算validation loss
  • 更新学习率
  • 判断是否需要早停。。。

2.10 executor.evaluate(test_data)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/324855.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RAG 博客】RAG 应用中的 Routing

Blog:Routing in RAG-Driven Applications ⭐⭐⭐⭐ 根据用户的查询意图,在 RAG 程序内部使用 “Routing the control flow” 可以帮助我们构建更实用强大的 RAG 程序。路由模块的关键实现就是一个 Router,它根据 user query 的查询意图&…

docker私有仓库registry

简介 Docker私有仓库的Registry是一个服务,主要用于存储、管理和分发Docker镜像。具体来说,Registry的功能包括: 存储镜像:Registry提供一个集中的地方来存储Docker镜像,包括镜像的层次结构和元数据。 版本控制&…

【Unity 实用工具篇】 | UIEffect 实现一系列UGUI特效,灰度、负片、像素化特效

前言【Unity 实用工具篇】 | UIEffect 实现一系列UGUI特效,灰度、负片、像素化特效一、UGUI特效插件:UIEffect1.1 介绍1.2 效果展示1.3 使用说明及下载二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 使用灰度特效做头像(关卡)选择总结

【C/C++笔试练习】DNS设置文件、应用层、Dos攻击、DNS服务、DNS、子网划分、http状态、路由设置、TCP连接、HTTP状态码、剪花布条、客似云来

文章目录 C/C笔试练习选择部分(1)DNS设置文件(2)应用层(3)Dos攻击(4)DNS服务(5)DNS(6)子网划分(7)http状态&am…

日报表定时任务优化历程

报表需求背景 报表是一个很常见的需求,在项目中后期往往会需要加多种维度的一些统计信息,今天就来谈谈上线近10个月后的一次报表优化优化之路(从一天报表跑需要五分钟,优化至秒级) 需求:对代理商进行日统计…

视频合并有妙招:视频剪辑一键操作,批量嵌套合并的必学技巧

在数字时代的今天,视频已经成为我们日常生活和工作中不可或缺的一部分。无论是记录生活点滴,还是制作专业项目,视频合并都是一个常见的需求。然而,对于许多人来说,视频合并却是一个复杂且繁琐的过程。现在有云炫AI智剪…

第七届精武杯部分wp

第一部分:计算机和手机取证 1.请综合分析计算机和手机检材,计算机最近一次登录的账户名是 答案:admin 创建虚拟机时直接给出了用户名 2. 请综合分析计算机和手机检材,计算机最近一次插入的USB存储设备串号是 答案&#xff1a…

6.python网络编程

文章目录 1.生产者消费者-生成器版2.生产者消费者--异步版本3.客户端/服务端-多线程版4.IO多路复用TCPServer模型4.1Select4.2Epoll 5.异步IO多路复用TCPServer模型 1.生产者消费者-生成器版 import time# 消费者 def consumer():cnt yieldwhile True:if cnt < 0:# 暂停、…

创新指南 | 生成式AI如何引领企业创新未来?

2023年麦肯锡全球数字战略调查了1000多名受访者&#xff0c;发现&#xff1a;建立创新文化的组织与它们应用包括生成式AI在内的最新数字技术提高产出的能力之间有着惊人的强关联。 本文探讨了顶尖创新企业采取的五项行动&#xff0c;使它们与同行之间拉开距离&#xff0c;并在使…

【Linux系统】进程

本篇博客整理了进程的多方面知识&#xff0c; 旨在从进程的概念、管理、属性、创建等方面让读者更加全面系统地理解进程和操作系统的管理设计。 目录 一、进程是什么 二、操作系统如何管理进程 1.描述进程 PCB 2.组织进程 3.再谈进程和进程管理 三、Linux下的进程管理 1…

Docker Compose:简化多容器应用部署

序言 在当今的软件开发中&#xff0c;容器化技术的使用已经很普遍了。而 Docker 作为其中最流行的容器化平台之一&#xff0c;为开发者提供了方便、快捷、一致的开发和部署环境。但是&#xff0c;当我们的应用开始变得更加复杂&#xff0c;涉及到多个容器时&#xff0c;手动管…

在 Kubernetes 上运行 Apache Spark 进行大规模数据处理的实践

在刚刚结束的 Kubernetes Community Day 上海站&#xff0c;亚马逊云科技在云原生分论坛分享的“在 Kunernets 上运行 Apache Spark 进行大规模数据处理实践”引起了现场参与者的关注。开发者告诉我们&#xff0c;为了充分利用 Kubernetes 的高可用设计、弹性&#xff0c;在越来…

AI + Web3 如何打造全新创作者经济模型?

可编程 IP 的兴起&#xff0c;借助人工智能极大提高创作效率和效能&#xff0c;让 Web3 用户体会到了自主创作和产品制作的乐趣。然而&#xff0c;你知道 AI 时代来临的背景下&#xff0c;创作者经济模型又该如何在 Web3 技术的加持下走向更成熟的运作轨道吗&#xff1f;第 43 …

再谈毕业论文设计投机取巧之IVR自动语音服务系统设计(信息与通信工程A+其实不难)

目录 举个IVR例子格局打开&#xff0c;万物皆能IVR IVR系统其实可盐可甜。还能可圈可点。 戎马一生&#xff0c;归来依然IVR。 举个IVR例子 以下是IVR系统的一个例子。 当您拨打电话进入IVR系统。 首先检验是否为工作时间。 如是&#xff0c;您将被送入ivr-lang阶段&#xff0…

QT day5 作业

服务器头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QList> //链表类 #include <QMessageBox> //消息对话框类 #include <QDebu…

【C语言】精品练习题

目录 题目一&#xff1a; 题目二&#xff1a; 题目三&#xff1a; 题目四&#xff1a; 题目五&#xff1a; 题目六&#xff1a; 题目七&#xff1a; 题目八&#xff1a; 题目九&#xff1a; 题目十&#xff1a; 题目十一&#xff1a; 题目十二&#xff1a; 题目十…

大文件传输的好帮手Libarchive:功能强大的开源归档文件处理库

在数字化时代&#xff0c;文件的存储和传输对于企业的日常运作至关重要。但是&#xff0c;服务器中的压缩文件往往无法直接查看或预览&#xff0c;这给用户带来了不便。为了解决这一问题&#xff0c;在线解压功能的开发变得尤为重要。接下来&#xff0c;小编将介绍一个能够实现…

RabbitMQ(安装配置以及与SpringBoot整合)

文章目录 1.基本介绍2.Linux下安装配置RabbitMQ1.安装erlang环境1.将文件上传到/opt目录下2.进入/opt目录下&#xff0c;然后安装 2.安装RabbitMQ1.进入/opt目录&#xff0c;安装所需依赖2.安装MQ 3.基本配置1.启动MQ2.查看MQ状态3.安装web管理插件4.安装web管理插件超时的解决…

使用xtuner微调InternLM-Chat-7B

1. 安装xtuner #激活环境 source activate test_llm # 安装xtuner pip install xtuner#还有一些依赖项需要安装 future>0.6.0 cython lxml>3.1.0 cssselect mmengine 2. 创建一个ft-oasst1 数据集的工作路径&#xff0c;进入 mkdir ft-oasst1 cd ft-oasst1 3.XTune…

MySQL系列之索引

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…