t2vec code

文章目录

    • 执行过程
    • preprocess.jl 解释
    • h5 文件结构

执行过程

(base) zzq@server1:~/project/t2vec/preprocessing$ julia porto2h5.jl
Processing 1710660 trips…
100000
200000
300000
400000
500000
600000
700000
800000
900000
1000000
1100000
1200000
1300000
1400000
1500000
1600000
1700000
Incompleted trip: 0.
Saved 1704759 trips.
(base) zzq@server1:~/project/t2vec/preprocessing$ julia preprocess.jl
Please provide the correct hdf5 file /home/xiucheng/Github/t2vec/data/porto.h5
(base) zzq@server1:~/project/t2vec/preprocessing$ julia preprocess.jl
Building spatial region with:
cityname=porto,
minlon=-8.735152,
minlat=40.953673,
maxlon=-8.156309,
maxlat=41.307945,
xstep=100.0,
ystep=100.0,
minfreq=100
Creating paramter file /home/zzq/project/t2vec/data/porto-param-cell100
Processed 100000 trips
Processed 200000 trips
Processed 300000 trips
Processed 400000 trips
Processed 500000 trips
Processed 600000 trips
Processed 700000 trips
Processed 800000 trips
Processed 900000 trips
Processed 1000000 trips
Processed 1100000 trips
Processed 1200000 trips
Processed 1300000 trips
Processed 1400000 trips
Processed 1500000 trips
Processed 1600000 trips
Processed 1700000 trips
Cell count at max_num_hotcells:40000 is 7
Vocabulary size 18866 with cell size 100.0 (meters)
Creating training and validation datasets…
Scaned 200000 trips…
Scaned 300000 trips…
Scaned 400000 trips…
Scaned 500000 trips…
Scaned 600000 trips…
Scaned 700000 trips…
Scaned 900000 trips…
Scaned 1000000 trips…
Saved cell distance into /home/zzq/project/t2vec/data/porto-vocab-dist-cell100.h5

preprocess.jl 解释

这段代码是用于构建和训练一个空间区域的模型,主要包含以下步骤:

  1. 导入必要的Julia包:

    using JSON
    using DataStructures
    using NearestNeighbors
    using Serialization, ArgParse
    include("SpatialRegionTools.jl")
    
  2. 通过ArgParse库解析命令行参数:

    args = let s = ArgParseSettings()@add_arg_table s begin"--datapath"arg_type=Stringdefault="/home/zzq/project/t2vec/data"endparse_args(s; as_symbols=true)
    end
    

    这段代码使用ArgParse库来解析命令行参数。--datapath 是一个可选参数,表示数据的存储路径,默认为 “/home/zzq/project/t2vec/data”。

  3. 读取JSON格式的超参数文件(“…/hyper-parameters.json”):

    param  = JSON.parsefile("../hyper-parameters.json")
    

    这里假设存在一个超参数文件,通过JSON库解析超参数。

  4. 从超参数中提取有关空间区域的信息:

    regionps = param["region"]
    cityname = regionps["cityname"]
    cellsize = regionps["cellsize"]
    

    获取城市名称、单元格大小等信息。

  5. 检查是否存在 HDF5 文件,如果不存在则退出:

    if !isfile("$datapath/$cityname.h5")println("Please provide the correct hdf5 file $datapath/$cityname.h5")exit(1)
    end
    
  6. 使用提取的信息构建一个 SpatialRegion 对象:

    region = SpatialRegion(cityname,regionps["minlon"], regionps["minlat"],regionps["maxlon"], regionps["maxlat"],cellsize, cellsize,regionps["minfreq"], # minfreq40_000, # maxvocab_size10, # k4) # vocab_start
    

    这里创建了一个 SpatialRegion 对象,用于表示一个空间区域,包含了区域的地理信息和一些超参数。

  7. 输出空间区域的信息:

    println("Building spatial region with:cityname=$(region.name),minlon=$(region.minlon),minlat=$(region.minlat),maxlon=$(region.maxlon),maxlat=$(region.maxlat),xstep=$(region.xstep),ystep=$(region.ystep),minfreq=$(region.minfreq)")
    

    这段代码输出构建的空间区域的一些关键信息。

  8. 检查是否存在先前保存的参数文件,如果存在则读取参数文件,否则创建并保存参数文件:

    paramfile = "$datapath/$(region.name)-param-cell$(Int(cellsize))"
    if isfile(paramfile)println("Reading parameter file from $paramfile")region = deserialize(paramfile)
    elseprintln("Creating parameter file $paramfile")num_out_region = makeVocab!(region, "$datapath/$cityname.h5")serialize(paramfile, region)
    end
    

    如果存在参数文件,则从文件中读取参数,否则创建参数并保存到文件中。

  9. 输出词汇表的大小和单元格大小:

    println("Vocabulary size $(region.vocab_size) with cell size $cellsize (meters)")
    

    输出词汇表的大小和单元格大小。

  10. 创建训练和验证数据集:

    println("Creating training and validation datasets...")
    createTrainVal(region, "$datapath/$cityname.h5", datapath, downsamplingDistort, 1_000_000, 10_000)
    

    这里调用 createTrainVal 函数创建训练和验证数据集。

  11. 保存最近邻词汇:

    saveKNearestVocabs(region, datapath)
    

    最后,保存最近邻的词汇。

训练未开始时目录结构

在这里插入图片描述

h5 文件结构

根据你提供的Julia代码,使用h5open函数创建了一个HDF5文件,并将处理后的数据存储到文件中。下面是生成的HDF5文件的组和数据集结构的大致描述:

  1. 组结构:

    • /trips: 存储处理后的行程数据。
    • /timestamps: 存储每个行程的时间戳数据。
  2. 数据集结构:

    • /trips/1: 第一个行程的数据。
    • /timestamps/1: 第一个行程对应的时间戳数据。
    • /trips/2: 第二个行程的数据。
    • /timestamps/2: 第二个行程对应的时间戳数据。
    • 以此类推…
  3. 属性:

    • 文件属性:num 属性存储了总共存储的行程数目。

根据代码中的逻辑,每个行程都被存储为两个数据集:/trips/$num/timestamps/$num。这里的 $num 是行程的编号,从1开始递增。

要注意的是,这里的时间戳数据 /timestamps/$num 是通过生成一个等差数列 collect(0:tripLength-1) * 15.0 得到的,15.0 是一个时间间隔的倍数。这是基于时间戳的假设,具体的时间间隔可能需要根据你的数据集的特点进行调整。

请注意,具体的组织结构可能取决于你的数据和代码的具体实现。你可以使用h5py或其他HDF5文件阅读工具来查看生成的HDF5文件的详细结构。

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

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

相关文章

2024最新适用于 Windows 、Mac 的最佳屏幕录制软件

屏幕录制软件可以帮助我们录制 PC 和MacBook的实时屏幕视频。如果您想为 优酷录制视频,或者您正在为您的公司制作基于视频的项目,并且需要捕获屏幕的实时视频录制,那么我们在此列出了 一 款适合您的 Windows 、Mac的 2024 年最佳屏幕录制软件…

锤科HandShaker修改版,支持安卓14、澎湃OS

如今几乎各家手机厂商都在布局生态,但PC端往往是最容易被忽略的一环,哪怕是很强的华为鸿蒙、小米澎湃,想要做到手机和电脑互联,也限制了笔记本机型 虽然我一直致力于解锁非小米电脑安装小米电脑管家,比如前几天刚刚更…

决策树(公式推导+举例应用)

文章目录 引言决策树学习基本思路划分选择信息熵信息增益增益率(C4.5)基尼指数(CART) 剪枝处理预剪枝(逐步构建决策树)后剪枝(先构建决策树再剪枝) 连续值与缺失值处理连续值处理缺失…

考古学家 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C 题目描述 有一个考古学家发现一个石碑,但是很可惜发现时其已经断成多段。 原地发现N个断口整齐的石碑碎片,为了破解石碑内容,考古学家希望有程序能帮忙计算复原后的石…

精品公式——“V型反转”,精准把握V型反转行情,主副图分享

► 日线表现 代码评估 技术指标代码评估: M5, M14, M25 - 指数移动平均线(EMA): M5:EMA(C,5),COLORLIBLUE;:5日指数移动平均线,用浅蓝色表示。 M14:EMA(C,13),COLORF00FF0;:13日指数移动平均线&#xff…

定时任务框架-xxljob

spring传统的定时任务Scheduled,但是这样存在这一些问题 : 做集群任务的重复执行问题 cron表达式定义在代码之中,修改不方便 定时任务失败了,无法重试也没有统计 如果任务量过大,不能有效的分片执行 1.分布式任务调…

详解矩阵的正交化(附例题分析)

目录 一. 矩阵Gram-Schmidt正交化的好处 二. 矩阵标准正交化过程 三. 例题 3.1 标准正交化 3.2 算法小结 3.3 优化分析 四. 小结 矩阵有两类等价关系 矩阵对角化 特殊矩阵 一. 矩阵Gram-Schmidt正交化的好处 假如有三个线性独立的向量a,b,c,他们是标准正…

Word不同部分(分节)设置页眉和页码的使用指南——附案例操作

Word页眉和页码分节设置的使用指南 目录 Word页眉和页码分节设置的使用指南摘要1. 插入分节符2. 设置不同的页眉3. 设置不同的页码4. 调整页码的起始值5. 删除或更改分节6. 预览和调整 摘要 在撰写word文档时,我们经常需要在不同的部分应用不同的页眉和页码格式。在…

2024年 最新 iPhone手机 历代机型、屏幕尺寸、纵横比、分辨率 整理

🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 &…

数字信号处理 唐向宏著 pdf +课后答案 免费下载

数字信号处理——原理、实现与仿真 pdf 唐向宏著 +课后答案 杭州电子科技大学 费劲心思在网上花钱买的,共享给大家 永久链接:https://wwi.lanzoup.com/b0140pf4f 密码:aflj 里面除了有原书PDF,还有课后题答案

启动redis出现Creating Server TCP listening socket 127.0.0.1:6379: bind: No error异常

1.进入redis安装目录,地址栏输入cmd 2.输入命令 redis-server.exe redis.windows.conf redis启动失败 解决,输入命令 #第一步 redis-cli.exe#第二步 shutdown#第三步 exit第四步 redis-server.exe redis.windows.conf 显示以下图标即成功

日程安排小程序实战教程

日常中我们经常有一些事情需要提醒自己,使用日历的形式比较符合实际的使用习惯。本篇我们就利用微搭低代码工具带着大家开发一款日程安排的小程序。 1 创建数据源 登录微搭低代码控制台,打开数据模型,点击创建 输入数据源的名称日程安排 …

【PaperReading- VLM】1. FERRET

CategoryContent论文题目FERRET: REFER AND GROUND ANYTHING ANYWHERE AT ANY GRANULARITY作者Haoxuan You (Columbia University), Haotian Zhang, Zhe Gan, Xianzhi Du, Bowen Zhang, Zirui Wang, Liangliang Cao (Apple AI/ML), Shih-Fu Chang (Columbia University), Yinfe…

【【深入浅出了解静态时钟分析和时钟约束】】

深入浅出了解静态时钟分析和时钟约束 时序分析是什么? 我们提出一些特定的时序要求(或者说是添加特定的时序约束),使用特定的时序模型,针对特定的电路进行分析。分析的最终结果是要求系统时序满足我们提出的要求。 这…

Flink异步IO

本文讲解 Flink 用于访问外部数据存储的异步 I/O API。对于不熟悉异步或者事件驱动编程的用户,建议先储备一些关于 Future 和事件驱动编程的知识。 本文代码gitee地址: https://gitee.com/ddxygq/BigDataTechnical/blob/main/Flink/src/main/java/operator/AsyncIODemo.java …

【HarmonyOS4.0】第九篇-ArkUI布局容器组件(一)

容器组件指的是它可以包含一个或多个子组件的组件,除了前边介绍过的公共属性外。 一、线性布局容器(Row、Column) 线性容器类表示按照水平方向或者竖直方向排列子组件的容器,ArkUI开发框架通过 Row 和 Colum 来实现线性布局。 …

matlab使用PhysioNet的WFDB工具箱

目录 PhysioNet 官方安装示例 PhysioNet 官方 官方的文档:Waveform Database Software Package (WFDB) for MATLAB and Octave 简介:用于MATLAB的WFDB工具箱是用于读取、写入和操作(处理)PhysioNet数据的MATLAB函数的集合&#x…

源码搭建教学:连锁餐饮APP开发实战

连锁餐饮APP,对于很多从事餐饮行业的人来说不会陌生,同样这个项目本身就有着很高的热度。今天,小编将深入为大家讲述一下此系统的前后端开发、数据库设计、用户界面设计等方面,让您深入了解全栈开发的方方面面。 一、项目准备与规…

JavaScript系列——闭包

文章目录 闭包定义词法作用域闭包示例使用场景创建私有变量ES5 中,解决循环变量的作用域问题 小结 闭包定义 闭包,是函数及其关联的周边环境的引用的组合,在闭包里面,内部函数可以访问外部函数的作用域,而外部函数不能…

java通过HttpClient方式实现https请求的工具类(绕过证书验证)

目录 一、引入依赖包二、HttpClient方式实现的https请求工具类三、测试类 一、引入依赖包 引入相关依赖包 <!--lombok用于简化实体类开发--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><option…