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=String
                default="/home/zzq/project/t2vec/data"
        end
        parse_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"], # minfreq
                           40_000, # maxvocab_size
                           10, # k
                           4) # 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)
    else
        println("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文件的详细结构。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

读写锁(arm)

参考文章读写锁 - ARM汇编同步机制实例(四)_汇编 prefetchw-CSDN博客 读写锁允许多个执行流并发访问临界区。但是写访问是独占的。适用于读多写少的场景 另外好像有些还区分了读优先和写优先 读写锁定义 typedef struct {arch_rwlock_t raw_lock; #if…

Android Firebase (FCM)推送接入

官方文档: 向后台应用发送测试消息 | Firebase Cloud Messaging 1、根级(项目级)Gradlegradle的dependencies中添加: dependencies {...// Add the dependency for the Google services Gradle pluginclasspath com.google.gm…

使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速

Open AI 推出的 Whisper 是一个通用语音转录模型,在各种基准和音频条件下都取得了非常棒的结果。最新的 large-v3 模型登顶了 OpenASR 排行榜,被评为最佳的开源英语语音转录模型。该模型在 Common Voice 15 数据集的 58 种语言中也展现出了强大的多语言性…

CentOS安装k8s单机/集群及一些命令

目录 前言 1. 安装docker 2. 安装要求 3.准备网络(如果只装单机版可跳过此部) 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化,只在master执行,子节点不要执行 5.3.1 一些…

ActiveMQ任意文件写入漏洞(CVE-2016-3088)

简述:ActiveMQ的fileserver支持写入文件(但是不支持解析jsp),同时也支持移动文件。所以我们只需要先上传到服务器,然后再移动到可以解析的地方即可造成任意文件写入漏洞。我们可以利用这个漏洞来上传webshell或者上传定时任务文件。 漏洞复现 启动环境 …

回归预测 | Matlab基于SO-BiLSTM蛇群算法优化双向长短期记忆神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-BiLSTM蛇群算法优…

记录汇川:H5U与Fctory IO测试7

主程序: 子程序: IO映射 子程序: 辅助出料程序 子程序: 辅助上料 子程序: 自动程序 FB块创建: H5U模块添加: Fctory IO配置: HMI配置 实际动作如下: Fctory IO测试7

JDBC

1 连接JDBC jdbc是连接java和数据库的桥梁,对于不同的数据库,如果我们希望用java连接,我们需要下载不同的驱动。这里我们使用mysql数据库,下载驱动。 MySQL :: Download MySQL Connector/J (Archived Versions) (版本…

一卡通水控电控开发踩过的坑

最近在做一个项目,是对接一卡通设备的。我一开始只拿到设备和3个文档开局。不知道从哪下手。一步一步踩坑过来。踩了很多没有必要的坑,写出来给有用的人吧。 读卡器怎么用? 有个读卡器,一开始什么软件也不提供。我都不知道是干嘛…

深信服态势感知一体机SIP-1000 Y2100 3.0.1Y升级3.0.3Y步骤

当前版本:3.0.1Y 升级后版本:3.0.3Y PS:3.0.1Y不能直升3.0.3Y,需要先通过升级工具升级到3.0.2Y,再安装前置补丁从3.0.2Y升级到3.0.3Y;每一次升级时间为20-30分钟,设备升级会重启,需提…

Scrapy框架自学

配置国内镜像源 # pip设置配置 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set trusted-host pypi.tuna.tsinghua.edu.cn创建虚拟环境 # 使用conda创建虚拟环境(具体内容请参考课件) conda create -n py_s…

树状结构查询 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C 题目描述 通常使用多行的节点、父节点表示一棵树,比如: 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后,请打印出来树中他的所有下层节点。 …

Element-ui图片懒加载

核心代码 <el-image src"https://img-blog.csdnimg.cn/direct/2236deb5c315474884599d90a85d761d.png" alt"我是图片" lazy><img slot"error" src"https://img-blog.csdnimg.cn/direct/81bf096a0dff4e5fa58e5f43fd44dcc6.png&quo…

使用paho.mqtt.embedded-c和openssl实现MQTT的单向认证功能

1、背景 由于项目有需求在一个现有的产品上增加MQTT通信的功能&#xff0c;且出于安全考虑&#xff0c;MQTT要走TLS&#xff0c;采用单向认证的方式。 2、方案选择 由于是在现有的产品上新增功能&#xff0c;那么为了减少总的成本&#xff0c;故选择只动应用软件的来实现需求。…

微软Office 2019 批量授权版

软件介绍 微软办公软件套件Microsoft Office 2019 专业增强版2024年1月批量许可版更新推送&#xff01;Office2019正式版2018年10月份推出&#xff0c;主要为多人跨平台办公与团队协作打造。Office2019整合对过去三年在Office365里所有功能&#xff0c;包括对Word、Excel、Pow…

小程序系列--4.协同工作和发布

一、小程序成员管理 1. 成员管理的两个方面 2. 不同项目成员对应的权限 3. 开发者的权限说明 4. 添加项目成员和体验成员 二、小程序的版本 1、小程序的版本 三、发布上线 1. 小程序发布上线的整体步骤 一个小程序的发布上线&#xff0c;一般要经过上传代码 -> 提…

Python: Spire.PDF-for-Python

# encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 许可信息查看&#xff1a; # 描述&#xff1a; # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 3.11 # Datetime : 2024/1/11 10:32 # User : geovindu # Product : PyChar…

Unity组件开发--长连接webSocket

1.下载安装UnityWebSocket 插件 https://gitee.com/cambright/UnityWebSocket/ 引入unity项目&#xff1a; 2.定义消息体结构&#xff1a;ExternalMessage和包结构Package&#xff1a; using ProtoBuf; using System; using System.Collections; using System.Collections.Ge…

c++全排列

目录 next_permutation()函数 例 perv_permutation()函数 例 next_permutation()函数 next_pernutation()函数用于生成当前序列的下一个排序。它按照字典序对序列进行重新排序&#xff0c;如果存在下一个排列&#xff0c;则将当前序列更改为下一个排列&#xff0c;并返回t…

LeetCode-657/1275/1041

1.机器人能否返回原点&#xff08;657&#xff09; 题目描述&#xff1a; 在二维平面上&#xff0c;有一个机器人从原点 (0, 0) 开始。给出它的移动顺序&#xff0c;判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 …