- 博客(54)
- 收藏
- 关注
原创 开发日记14-vite配置多环境
为什么要配置多环境,因为开发的时候,获取后端数据的baseUrl是不一样的,端口也可能不一样。这里新增了一个 "prod": "vite --mode=prod", 在打包的时候,会自动寻找prod结尾的文件,引入其中的所有变量。我们在main.js中这样引入,使得axios在get或者post请求的时候,隐式的添加baseUrl前缀。我们在web目录下,新增一个.env文件,将目前调取后端数据用到的base url配置上。现在可以试试,重新执行prod,试试prod环境,ok,没问题。
2026-01-20 21:09:39
121
原创 开发日记13-响应式变量
我们引入一个输入的标签a-input,绑定对应的变量resp,并且绑定一个onchange回调函数,一旦内容改变,就会在控制台打印内容,当我们在输入框输入数字时,响应式变量自身发生改变,同时也看到控制台的打印123...如果成功获取结果,那么我们就对这个resp赋值,值得注意的是,我们赋值的话,需要赋值给resp的value属性,这个一定要记住。在里面我们引入了一个响应式变量resp,用ref去定义,ref是响应式变量的关键字。那么读取之后,如何展示呢?在脚本中,我们利用axios获取后端传来的结果。
2026-01-20 20:44:53
530
原创 开发日记12-集成axios
在/data/wz/JavaProject/im-nls/business/src/main/java/com/wz/nls/business/config/CorsConfig.java中配置。由于前端端口和后端端口不一致,在前后端分离的项目中一定会有跨域问题,解决方案很简单,后端新增一个配置文件,这时候就可以解决,但是以后还出现所谓跨域问题,那就大概率不是真的跨域问题了。在/data/wz/JavaProject/im-nls/web/src/view/home.vue中引入。可以在控制台看到效果。
2026-01-20 19:37:57
73
原创 开发日记11-抽取组件代码成为自己的公用模块
将其copy到/data/wz/JavaProject/im-nls/web/src/view/home.vue中,由于这个组件的header和sider在整个项目都用的到,不止一个页面用,所以我们需要将他们抽取出来。在/data/wz/JavaProject/im-nls/web/src/components/中新增 the-header.vue、the-sider.vue。引入ant-design-Vue的布局。同样的sider的操作类似,得到。
2026-01-18 16:01:39
78
原创 开发日记7-使用生成的代码布置接口并实现查询
在/data/wz/JavaProject/im-nls/business/src/main/java/com/wz/nls/business/service/DemoService.java中,新增一个接口在/data/wz/JavaProject/im-nls/business/src/main/java/com/wz/nls/business/controller/TestController.java中,应用这个接口测试接口下面讲一讲,生成的代码的规范,以及如何使用。
2026-01-17 17:16:19
620
原创 开发日记5-Spirng引入数据库并实现结果查询
在父pom中,引入依赖在business子pom中,引入依赖,版本号删掉/data/wz/JavaProject/im-nls/business/src/main/resources/application.properties中引入配置,问号部分给改成自己账户密码其中表示我们之后的sql语句对应的文件在/mapper文件夹下,以xml为格式。
2026-01-01 15:49:16
921
原创 开发日记4-引入日志配置
在/data/wz/JavaProject/im-nls/business/src/main/resources/下引入配置logback-spring.xml然后修改相应的log文件位置也可以保持这样,然后在相应的位置创建文件夹。
2026-01-01 13:25:02
189
原创 开发日记3-引入AOP打印请求参数
AOP 是Aspect-Oriented Programming(面向切面编程)的缩写,它是一种编程思想(与 OOP 面向对象编程互补),而Spring AOP 是 Spring 框架对 AOP 思想的具体实现,用于解决项目中的「横切性问题」,实现代码的解耦和复用。所谓「横切性问题」,是指那些不归属某个具体业务模块,但又被多个业务模块共同依赖的功能,比如日志记录、事务管理、权限校验、性能监控等,这些功能就像 “横切” 在所有业务模块之上的通用能力,Spring AOP 就是对这些通用能力进行统一封装和管理。
2025-12-29 21:56:21
1027
原创 开发日记2-创建http文件测试http接口
创建com.wz.nls.business.controller在controller包下创建TestController.java。
2025-12-29 20:53:46
311
原创 NLS开发日记1-初始化项目
使用idea,文件-新建-项目,选择空项目,输入名称和位置新增文件pom.xml,初始化什么都不加,但是java版本要选对,这里跟系统对应注意:父模块才有<dependencyManagement>标签,子模块没有。
2025-12-29 20:05:18
230
原创 CUDA学习5-矩阵乘法(共享内存版)
在未使用共享存储器(Shared Memory)时,CUDA 矩阵乘法的是在 SM(流多处理器)的 CUDA Core 中执行的,临时数据会优先存在中;但完全依赖。
2025-12-26 15:27:20
1087
原创 解决vscode在win下使用cuda无法跳转库函数的问题
在项目下的.vscode文件夹中正确配置版本和相关文件的路径,有些路径需要根据你电脑中的实际路径进行配置,如果某个路径有标黄的波浪线,说明vscode没有找到这个路径。tasks.json,这个文件的配置根据自己的实际情况决定,不需要跟我的一样。settings.json(这个文件非常重要,如果没有,基本没法跳转)配置好之后就可以正确跳转了。
2025-12-24 09:26:39
383
原创 安装nvidia出现错误:dpkg: 依赖关系问题使得 nvidia-driver-580 的配置工作不能继续...
【代码】安装nvidia出现错误:dpkg: 依赖关系问题使得 nvidia-driver-580 的配置工作不能继续...
2025-12-01 09:17:54
602
原创 CUDA学习4-矩阵乘法
其实在矩阵乘法的时候涉及3个指针,我们最终的结果矩阵P,是height * height的,每行和每列肯定都对应一个for循环(对应绿色和玫红色指针),而每个元素的求解都需要对width长度的两个向量对应相乘再求和,如下图深色部分所示,那么就需要一个橙色的指针来遍历width长度的向量,并且需要一个sum来存储求和的结果,最后这个sum就是P矩阵的一个元素了。但是我们想一想,最里层的for循环其实是独立的,也就是说,P矩阵每个元素的求解过程就是独立的,我们用两个for循环来包裹是不是有点笨?
2025-11-26 22:30:53
327
原创 CUDA学习3-Grid、Block、Thread剖析
在grid中,从一堆block里面精确定位thread,也是类似的,从单个block的去寻找thread的逻辑 和 从单个grid的去寻找block的逻辑完全一样。在GPU中,为了高效的并行化计算,计算单元分为三个层级,Grid、Block以及Thread,之所以这样划分,是为了能够快速的索引到数据。Grid、Block以及Thread都是在逻辑层面上的概念上的计算单元划分,在物理层面其实不存在这样的划分。我们有个1维数据,长度是8,block的维度计划是4,也就是说threads个数是4,
2025-11-14 13:03:27
1221
原创 CUDA学习2-CPU和GPU的性能优化
CPU优化路线有两个方向减少memory latencypre-fetch提高throughputpipelineCPU需要处理大量的复杂逻辑运算,所以增加core的带来throughput的收益一般不太高而没有复杂逻辑运算,单纯大量数据计算的时候,增加core的throughput的收益就很高,所以这类运算就被放在GPU上了,可以说GPU就是为计算而生的。
2025-11-14 09:41:16
1096
原创 CUDA学习1-串行处理
就是改变循环嵌套的顺序,像上面那个例子一样,从“不好的排序”改为“好的排序”,以改善数据的局部性,从而减少缓存缺失,提高性能。
2025-11-11 19:54:12
898
原创 Deepseek-ocr论文精读
给出了几个重要信息这是一篇探究视觉二维映射(optical 2D mapping)实现长上下文压缩的可行性的文章。这个模型不怕高分辨率的输入。当视觉图像压缩比很高的情况下,识别的精度依然很高。模型推理速度快,单张 A100-40G 显卡搭载的 DeepSeek-OCR 每日可生成 20 万页以上的数据。下图其他模型的在基准测试中对比,出手就是王炸,deepseek-ocr系列包揽了整个外围,类似机器学习的AUC图像,面积越大,模型性能越好。
2025-10-21 20:19:29
2404
原创 学习triton-第2课 矩阵加法
由于我们的矩阵数据是5*4的,所以一共有20个数,但是他们子内存中的排列依然是1D的,也就是说索引是从0-19,所以我们要计算每一个实例上的block需要是哪些索引,我们将0-19按照矩阵排列。嗯,意料之中的结果,还是torch原生的算子的快一些,因为cuda在底层已经将矩阵的基础运算性能优化到极致了,我们不用纠结这个结果,triton的优势在于自定义复杂的算子,减少大量IO操作,以达到更优的性能。这里我使用的是grid的最后一行来验证,结果也符合实际5/2=2余数1,最后一行需要被剪掉。
2025-09-11 10:23:37
422
原创 学习triton-第1课 向量加法
举个例子,我有个一维向量数据,长度2049,BLOCK_SIZE=1024,那么2049除以1024向上取整为3,所以我需要分配3个内核实例去处理这个数据,所以我们的匿名函数执行后的实际结果就是(3, ),但是我们不直接传结果,而是传匿名函数,扔给更底层去执行。这里简单讲一下,GPU运算之所以快,就是因为,它可以多线程并行化处理数据,所以我们会将数据切分成多块,每块去执行相同的函数,最后再合并成完整的结果返回。4. 注意传入核函数的变量,看上去像是把整个x, y, output传进去了,
2025-09-10 17:52:35
1083
原创 ArcGIS学习-20 实战-地形研究
再投影,首先是行政这个要素的投影,观察其坐标系是CGCS2000,所以选择对应的投影坐标系。然后是DEM的栅格数据投影,其地理坐标系是WGS1984那么选择对应的投影坐标系。得到,如果出错了,请重启arcgis,再添加数据,优先添加DEM。需要的投影数据生成好之后,再重新创建新图层,并加载数据。检查其坐标系,都没有投影坐标系,所以第一步是投影。得到,这里的操作,类似深度学习的最大池化。新建一个空地图,加载第十七节的要素。加载数据,第十六节的数据。将坡度重分类为五个等级。对分区统计数据符号化。
2025-09-09 12:02:13
324
原创 ArcGIS学习-20 实战-县域水文分析
这里的黑色代表非河流,白色代表河流,但是,这个也二分类也是根据阈值确定的,我们可以调整阈值,以尽可能准确的反应真实情况。限制默认为空,认为所有洼地都是需要填充的,这里更正一下Fill_DEM需要加上后缀.tif。我们创建的点,在这段区域内不一定是流量最大的点,所以我们先需要捕获倾泄点。一个色块中的支流都会汇集到干流,他们所在的区域就是一个完整的子流域。我们按照最低限度,来设定,也就是纯黑以外区域的下界。生成流域,这里直接使用我们自己定义的出水口点。得到,所以我们设置的出水口点基本是准确的。
2025-09-09 11:00:41
448
原创 ArcGIS学习-18 实战-降雨量空间分布插值分析
查看要素,发现均不是投影数据,但都是地理坐标都是WGS1984。确认图层的投影与栅格数据一致。然后新建空地图,重新加载。使用工具进行批量投影。
2025-09-08 16:46:02
338
原创 ArcGIS学习-17 实战-密度分析
当然,可以自己设置搜索半径,以前搜不到的点,半径扩大为20000后,就能搜得到。由于两个要素的地理坐标系是CGCS2000,所以设置对应的投影。添加数据,由于密度分析也是基于栅格数据,所以我们首先设置投影。再重新创建一个空白的图层,将转换的投影数据加载上去。注意到医院点的属性有pop列,可以认为是影响力权重。然后就不用每次都在点密度分析的时候设置环境了。由于其地理坐标系是WGS1984。重复以上操作,可以得到。2.道路和行政区投影。
2025-09-08 15:52:40
668
原创 ArcGIS学习-15 实战-建设用地适宜性评价
分析地图上每个像元对应的因子的数据,给出打分,然后得出加权和,最后得出每个像元的评分,再划分等级。现实情况比这个复杂,我们目前打分方式没有经过研究,赋分还存在问题,但是总的流程基本就是这个样子。查看地图的block的信息,选择识别工具,再单击地图上的一块区域,就可以显示其信息。但融合的前提是,重命名一下BOUA要素,使得两个要素名称不同,才能被融合工具识别。这里需要注意的是PAC是邮政编码,前4位相同,代表隶属于同一地级市。移除不必要的数据,重命名需要打分的栅格数据,我们得到。
2025-09-04 15:18:40
1424
原创 ArcGIS答疑-如何消除两张栅格图片中间的黑缝
仔细观察可以发现,这两张图片,在交接处是重叠的,每张图片在边缘都有细缝,当一个盖住另一个时,细缝就会展现。稍等一会(2分钟左右),处理完成后,自动融合为。加载两张栅格图片,隐约能看见中间的黑色细缝。如果要修改tif文件的坐标系使用。当然,也可以剪裁,视业务需求而定。从官网下载了一个地区的土地资源图。可以看到黑缝就消失了。
2025-09-04 11:32:18
650
原创 ArcGIS学习-14 实战-带障碍物的路径优化
点击停靠点->加载位置,依次加入起始点、终止点。选择是事故点,进入开始编辑模式,再创建要素。再点击求解,发现避开了不可经过的点位。选择属性,阻抗设置为 步行时间。最后保存编辑,并停止编辑。
2025-08-31 13:16:01
234
原创 ArcGIS学习-12 实战-综合案例
就是在某段固定的时间内,从省立医院出发以步行或者机动车的速度,最远能达到的范围,就是可达区域,可达区域是用来衡量可达性的指标。计算通过道路的时间,首先定义速度,这里一般需要查阅文献,为了简便起见,先按照道路类型class定义不同的速度,新建speed字段后,计算。查看路网的属性表,其中time字段就可以来作为分析的切入点,因为time就是根据道路长度和机动车形式速度来计算的。在不打断的情况下,arcgis默认相交的路段是不互通的,也就是说,在交点处不能转到另一条路。3.求解合肥市所有小学到医院的通行时间.
2025-08-28 17:30:59
2009
原创 各个领域都躲不掉的迪杰斯特拉算法-python实现
每次循环中1.找到当前可以访问到的最短节点,确认并标记这个最短节点以及其大小2.基于这个最短节点大小,更新其他节点路径长度。
2025-08-27 14:21:24
620
原创 ArcGIS学习-11 实战-商场选址
如果不选择ALL,那么各个道路会是一段一段的互相堆叠,边界可见,很丑,所以一定要选择ALL!目前来看,联合缓冲区和商场缓冲区有交集,我们需要将其在商场缓冲区的部分擦除掉。每满足一个正条件(道路、停车场、居民缓冲区)则+1。为道路、停车场、居民缓冲区分别新增分值字段,并赋1。为了求交集并保留所有要素,我们使用联合工具。我们新建字段“等级”,将各个区域分值加起来。同样的,居民区、停车场、商场都选择缓冲区。第八节/data/原始数据.gdb。针对要求1,作道路缓冲区。为商场设置字段,赋为-1。
2025-08-26 14:32:23
364
原创 ArcGIS学习-10 空间连接和矢量分析
现在有另一个需求:需要匹配点附近5km内的区域,现在则需要选择一对多了,如果是一对一,默认选择匹配到的第一个。我们需要将县界(面的属性)赋给事件K(点的属性),所以目标要素选择事件K,连接要素选择县界。由于事件K的属性表和县界的属性表没有公共字段,所以没法通过属性连接。如何通过事件K找到对应的区县名称,并将其添加到事件K的属性表中?值得注意的是,地图上次是有两个点,看起来是一个,是因为重合了。由于一个区县里面可能有多个点,我们需要得到对应点的和。此外,我们注意到,匹配规则是一对一的。
2025-08-26 13:29:53
588
原创 ArcGIS学习-9 ArcGIS查询操作
对于熟悉python的朋友我推荐使用python的模式,非常友好。里面甚至可以写函数,注意这里的一个缩进是空2格,如果一个缩进空4格则会报错!但是新建字段的时候,需要注意数据类型的设置,最好与参与运算的数据类型一致,否则数据类型强转可能导致意外的效果。打开县界的属性表,现在需要将省市区的名称拼在一起组成一个新的字段ADDR,值得注意的是,不加括号和前面加括号,查出来的结果一致(35条记录)而后面加括号,查询结果与之前的不一致(25条记录)也有多边形的和其他的,自己尝试一下。此外,这样可以得到相同的结果。
2025-08-26 11:06:56
511
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅