自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

喵十八的修行记录

喵十八的修行记录

  • 博客(69)
  • 收藏
  • 关注

原创 在Ubuntu22.04 使用stable-diffusion-webui 秋叶整合包

众所周知,赛博菩萨已经发布了windows下的,开箱即用,且集成度较高。那我为啥非要在Ubuntu下使用呢?当然是因为主力机就是Ubuntu系统啦。而且涉及到sd webui API 的调用,在Ubuntu 下调试更加方便一点。那有没有可以在Ubuntu下使用的方式呢?相比之下,方法一可能还会遇到一些网络问题,所以,我选择了更偷懒的方法二。分析一下整合包的内容,其实就多了windows 下的git 和 python 的环境。

2024-06-22 20:50:25 878

原创 使用Vercel 搭建自己的Dashy导航页

是一个开源的自托管导航页面配置服务,它具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。用户可以利用 Dashy 将自己常用的一些网站聚合起来,形成一个个性化的导航页面。(没有域名的话,买一个吧,阿里,腾讯等都行,不贵。则作为一站式的构建,预览和部署平台,使用起来非常方便。Step2. 在CloudFlare 配置管理解析,域名也可以在这买,稍微贵点。因而,想出了用Vercel部署一个个人的Dashy网站,这样在哪都能访问了。CNAME记录的目的是将域名指向另一个域名,再由另一个域名提供IP地址。

2024-06-22 20:36:09 542

原创 记录几个常用的docker镜像

个人常用docker 镜像

2023-10-29 15:10:01 8558

原创 Azure sqlserver 更改字符集

我们的Azure SQL Server是在2018年建的,当时还不支持汉字的字符集。然后最近发现因为字符集的缘故,出了bug,要调整字符集。然后就照着一通修改。然后神奇的事情来了,Sql Server 刚建好的时候,可以改DB的字符集。但是已经存在的DB,无法调整。

2023-08-26 13:04:31 916

原创 搭建开发环境-Windows

然后,Windows 是最好的Linux发行版。

2023-08-26 13:03:17 972

原创 搭建开发环境-Mac

上一篇记录了WSL 和Ubuntu 下开发环境的搭建。这一篇就说下Mac开发环境的搭建。就像很多人误以为Mini 是专为女孩子设计的高颜值车,其实是一辆极其hardcore 的拉力车一样。很多人都被Mac 那高颜值蒙蔽了,其实这是一台生产力满满的生产工具。生产力镇楼那既然作为生产工具,我们自然也要好好的配置一下了。

2023-08-26 13:02:20 633

原创 搭建开发环境-WSL+Ubuntu(一键搭建开发环境)

一键搭建开发环境

2023-08-21 19:51:52 1631

原创 FATE学习:跟着日志读源码(十二)dataio task excute阶段

综述参考FATE 的flowchart,常规任务开始的第一个组件,就是dataio。同前文,在${job_log_dir}/fate_flow_schedule.log 中输出如下命令后,开始通过task_executor 执行dataio。[INFO] [2021-06-04 14:42:02,995] [1:140456603948800] - job_utils.py[line:310]: start process command: /opt/app-root/bin/python /data

2021-09-20 17:22:00 870

原创 FATE学习:运行过程中产生的数据 概览

作为刚接触FATE的新人,尤其是工程向的,肯定很好奇FATE运行过程中,产生的日志都记录在哪里?运行过程中的模型和中间数据都保存在哪里?总的来看,FATE运行时产生数据包括如下几部分:db部分,记录和各项metircs,存在mysql(standalone 模式是sqlite)中。参见FATE学习:运行过程中产生的数据(二) db部分日志:落盘在本地,logs目录下。参见FATE学习:跟着日志读源码(一)日志目录结构jobs 运行时参数:基于输入中的配置项和默认配置项(缺省部分)生成的配置,存

2021-09-20 13:54:12 618

原创 FATE学习:小技巧复用component

综述将一个job中的各个component拆开来运行。只需要将上一步component 输出的name,namespace 作为下一步的输入,即可。至于component 输出的name,namespace,可以通过cli 中的component_output_data_table 或者直接查db 获取。在一些需要复用component 的情况下,比如一次求交结束后,使用不同的模型训练、预测等。可以有效的减少重复操作的耗时(io的和求交的耗时可是不小的)准备upload 数据生成up_guest

2021-09-10 19:10:40 553 5

原创 FATE学习:跟着日志读源码(十一)upload 任务过程中产生的请求

综述upload 任务的http请求,可以分为两部分。一部分是submit -> job finish 这个流程中产生的。另一部分是polling 的过程中,轮询产生的请求(只轮询后收集相关信息,不实际执行)执行细节以下的日志,是一个upload执行后,容器中完整的日志。10.200.96.235 - - [26/Jul/2021 08:20:31] "POST /v1/party/202107260820309976351/local/0/create HTTP/1.1" 200 -1

2021-09-08 21:43:04 420

原创 FATE学习:运行过程中产生的数据(四) model_cache

综述存储fate 训练过程中的模型目录: /data/projects/fate/model_local_cache/{model_version}/{model_id}内容(app-root) bash-4.2# ls -R.:define pipeline.pb variables./define:define_meta.yaml proto./define/proto:boosting-tree-model-meta.proto data-io-param.proto

2021-09-08 21:26:15 625

原创 FATE学习:运行过程中产生的数据(三) lmdb部分

综述upload,intersection,lr 等等组件,如果有中间结果,都以lmdb的形式存储。有关lmdb的,请参考官方文档存储位置为:nodemanager 的 /data/projects/fate/eggroll/data/LMDB按照output_data_{task_id} 存储各个task的结果 如:output_data_20210908144140944232712_dataio_0_0output_data_20210908144140944232712_hetero_

2021-09-08 21:25:11 546 5

原创 FATE学习:运行过程中产生的数据(二) db部分

综述fate_flow_server 启动时,会初始化db。cluster模式为mysql,standalone模式为sqlite,详细说明参考FATE学习:跟着日志读源码(二)fate_flow server 启动而在fate 任务的运行过程中,产生的job和task的metadata 以及 tracker 信息。这部分数据都存储在db中。因而也涉及大量的DB操作。创建 job or task: intsert 语句更新 job or task信息: update 语句、delete语句db概

2021-09-08 21:23:57 607

原创 FATE学习:运行过程中产生的数据(一) job部分

综述在创建job 、task 和 执行task的过程中,将相关配置信息、pid信息等落盘。目录位于 /data/projects/fate/jobs/${jobid} 下主要包括3类:pid:用于记录执行各个task的进程号的文件。配置文件:针对输入的DSL 文件,和Run Time Conf文件,结合当前FATE部署时的配置参数,会生成任务运行时最终使用的配置文件。日志目录结构|-- job_dsl.json: 结合输入的DSL 文件 和 默认配置参数生成。|-- job_runti

2021-09-08 21:23:02 707

原创 FATE学习:五种不同的API提交FATE任务

综述当前支持如下五种API来提交FATE任务,分别为:CLI API:通过python 启动python 脚本,提交FATE任务。REST API:Rest API 形式,发起http请求,提交FATE任务。Flow SDK:python 封装的SDK,调用相关API,提交FATE任务。Flow Client:封装为命令行工具模式的FATE Flow命令行控制台。Pipeline:python 封装的high level API。几种API的对比CLI API使用方式:python

2021-09-07 22:11:13 1889 7

原创 FATE学习:配置文件解析及V1/V2版本对比

综述为了让任务模型的构建更加灵活,目前 FATE 使用了一套自定的领域特定语言 (DSL) 来描述任务。在 DSL 中,各种模块(例如数据读写 data_io,特征工程 feature-engineering, 回归 regression,分类 classification)可以通向一个有向无环图 (DAG) 组织起来。通过各种方式,用户可以根据自身的需要,灵活地组合各种算法模块。除此之外,每个模块都有不同的参数需要配置,不同的 party 对于同一个模块的参数也可能有所区别。为了简化这种情况,对于

2021-09-04 16:30:18 1233 3

原创 联邦学习哪家强,中国山东找saber

ERROR:本文要素过多,包含开车、粗鄙之语、魔法、表情包等。但不包含联邦学习的具体说明,相关内容,文末给出传送门,请自行参阅。0. 先吐槽人呐就都不知道,自己不可以预料,一个人的职业发展啊,当然要靠自我奋斗,但是也要考虑技术的演进。我绝对不知道,我作为一个搞大数据的,怎么开始搞联邦学习了?所以当领导给我安排任务,说“公司都决定了,你来调研联邦学习吧”。我说另请高明吧,我实在也不是谦虚。我一个玩大数据的,一年正经代码写不了几行,到是sql和shell 写的飞起的咸鱼,怎么就能研究联邦学习了呢?但是

2021-08-26 21:10:57 361 2

原创 Ubuntu 的命令不显示绝对路径

只需要编辑文档 “~/.bashrc” 即可。$ sudo vim ~/.bashrc​if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\033[01;32m\u@\h\033[00m:\033[01;34m\w\033[00m\$ 'else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 'fi​将两个小写的’

2021-08-26 21:10:42 634

原创 【shell学习】1.Vim

哦咖喱供啊,用多了vim,编辑文档都不用鼠标的。–by 喵十八三种模式基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:命令模式用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:i 切换到插入模式,以输入字符。x .

2021-08-26 21:10:28 182

原创 FATE 命令行学习笔记

目录使用方式JOB_OPERATEsubmit_jobstop_jobquery_jobclean_jobdata_view_queryJOBjob_configjob_logTASK_OPERATEquery_taskTRACKINGcomponent_parameterscomponent_metric_allcomponent_metricscomponent_output_modelcomponent_output_datacomponent_output_data_tableDATAdownloa

2021-08-25 10:12:56 1048

原创 FATE学习:跟着日志读源码(十)polling

综述在FATE学习:跟着日志读源码(二)fate_flow server 启动介绍过,fate_flow_server.py中的DAGScheduler(interval=2 * 1000).start(),默认每隔2s,启动一次dag_scheduler,共五种调度。其中:调度处于waiting 状态的job:job的状态从waiting -> running,主要在FATE学习:跟着日志读源码(五)upload任务job schedule阶段介绍。调度处于running 状态的job:涉

2021-08-24 10:17:18 507

原创 FATE学习:跟着日志读源码(九)upload任务job finsih阶段

综述同task,job结束时,并不会返回job finish 的信息,也是在DagScheduler.schedule_running_job() 轮询时,通过calculate_job_status() 方法获取job的状态。获取job已经finish的信息后,会返还资源和进行相关环境清理。执行步骤dag_scheduler.py:当调度完task后,执行calculate_job_status,计算job当前的状态。执行calculate_job_progress,计算job当前的完成进度。

2021-08-24 10:16:51 354

原创 FATE学习:跟着日志读源码(八)upload任务task finsih阶段

综述task结束时,是通过TaskExecutor.report_task_update_to_driver更新本地的DB中task的状态信息的。但由于是异步请求,对于发起者而言,并不会收到task 结束的信息,只有在轮询中,去查询db,获取task的状态。获取task已经finish的信息后,会返还资源和进行相关环境清理。执行细节dag_scheduler.py:schedule_running_job 调度轮询,和前文类似,这里不多赘述调用链为DagScheduler.schedule_r

2021-08-24 10:16:20 297

原创 FATE学习:跟着日志读源码(七)upload任务task excute阶段

综述前文对upload task 进行schedule 之后,最终调用 task_executor 进行执行,进入具体的执行部分。每个task的具体日志会打在${job_log_dir}/ $ {role}/ ${party} 中(为便于记录,这里简记为 ${task_log_dir}这里就按照 ${task_log_dir}/DEBUG.log看 会比较清晰一点执行细节执行命令/opt/app-root/bin/python /data/projects/fate/python/fate

2021-08-24 10:15:52 726

原创 FATE学习:跟着日志读源码(六)upload任务task schedule阶段

综述在前文的基础上,因为job已经处于running状态,会按照task的依赖关系,依次调度该job下的task。调度之后的操作有2部分:Part1. 申请资源Part2. start job:将job的状态从waiting -> running 状态涉及的主要方法: dag_scheduler.schedule_running_jobs()执行步骤dag_scheduler.py:rundo轮询,发现处于running状态的job(这一部分见fate flow server

2021-08-24 10:15:24 635

原创 FATE学习:跟着日志读源码(五)upload任务job schedule阶段

综述由于是异步提交的,job启动是由server 进行轮询,对于处于waiting的 job 按照FIFO进行调度。调度之后的操作有2部分:Part1. 申请资源Part2. start job:将job的状态从waiting -> running 状态涉及的主要方法: dag_scheduler.schedule_waiting_jobs()执行细节dag_scheduler.py:轮询,发现处于waiting状态的job(这一部分见fate flow server 启动部分)

2021-08-24 10:14:48 640

原创 FATE学习:跟着日志读源码(四)upload任务submit&create阶段

综述本篇以upload任务的sumbit 和 create 阶段为例,结合产生的日志,说明该生命阶段代码的运行情况。执行步骤为便于说明,画了下uml 时序图,结合图说下各步操作在CLI 用户执行命令 python fate_flow_client.py -f upload -c upload_guest.jsonfate_flow_client.py:调用 call_fun()函数,向本地server 发起post请求response = requests.post("/".join([s

2021-08-24 10:14:05 879

原创 FATE学习:跟着日志读源码(三)一般任务生命周期

综述从联邦建模的角度去理解整个job的生命周期,就是一系列功能模块组成的DAG,可以参照fate官方的文档,其中,各个功能模块就具体实现而言,就是fate中的各个算法或数据组件。不过结合源码,从日志的角度来看,可以将整个job的生命周期,按照不同阶段所做的操作,进行划分。具体如下图:submit:提交 jobcreate:创建job 和该job下对应的 tasks(相当于元数据) ,这里创建好之后,所有状态都是waitingjob schedule:对于job,按照FIFO的顺序,轮询到wa

2021-08-24 10:12:50 709

原创 FATE学习:跟着日志读源码(二)fate_flow server 启动

日志走读 fate_flow server 启动部分综述代码:python/fate_flow/fate_flow_server.pyweb框架:Flask流程为:执行 python fate_flow_server.py ,这部分会在容器中打出相应日志。fate_flow_server 执行启动过程。这里可以看下logs目录(app-root) bash-4.2# pwd/data/projects/fate/logs(app-root) bash-4.2# lsfate_fl

2021-08-24 10:12:04 2314 1

原创 FATE学习:跟着日志读源码(一)日志目录结构

综述介绍fate运行过程中产生的各个类型日志版本说明部署方式为KubeFATE。相关版本为:FATE: 1.5.1KubeFATE: v1.3.0基本概念job:一个完整的调度单元,可以拆分成不同的task。task:最小的执行单元。component:预先定义的不同组件,具体的task执行,就是运行不同的组件。FATE框架根据官方的架构图,在单个Party的上FATE-Flow 的架构如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Rhg

2021-08-24 08:12:34 3159 1

原创 【shell学习】0.引言

shell 一直在用,但是没有系统的学习过。趁这次机会,整理下。复习下,也学习下。shell 是什么?Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。shell 脚本Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,

2021-08-23 21:04:48 101

原创 DT交流总结【2018存档】

有幸,能向DT的几位大神学习用户打标签的相关知识。总结如下:不要神话机器学习,许多基础的工作还是需要苦力去完成数据>特征>模型>调参依靠经验去选择特征,依靠数据去判断特征合不合理构建良好的迭代循环无监督的方法,使用无监督的方式聚类之后,交由业务去执行,去反馈。...

2021-08-23 21:00:44 88

原创 Spark mllib KMeans 源码走读【2018存档】

本文基于Spark 1.6.3KMeans介绍K-Means算法是一种基于距离的聚类算法,采用迭代的方法,计算出K个聚类中心,把若干个点聚成K类。具体的数学推演可以参考这两篇:基本Kmeans算法介绍及其实现K-means聚类算法MLlib 中KMeans 实现介绍MLlib实现K-Means算法的原理是,运行多个K-Means算法,每个称为run,返回最好的那个聚类的类簇中心。初始的类簇中心,可以是随机的,也可以是KMean||得来的,迭代达到一定的次数,或者所有run都收敛时,算法就结束。

2021-08-23 20:59:19 135

原创 spark-submit 源码阅读【2018存档】

前言基于spark1.6 源码整体流程参考这个图整个流程,涉及3个sh,以两个类作为入口spark-submit-> spark-class-> load-spark-env.sh 加载conf 中的spark-env.sh 中的环境变量,配置scala 的版本-> 返回spark-class-> 一系列环境变量的校验,依赖包目录的校验、设置-> 执行 org.apache.spark.launcher.Main-> 执行 org.apache.sp

2021-08-23 20:57:49 107

原创 Spark 爬坑记录之percent_rank()【2017存档】

若在maven 中配置了 org.scala-tools maven-scala-plugin compile testCompile ${scala.version}.6 -target:jvm-1.7 无需再在IDEA中配置 scala 的sdk注意这一行,最好标注小版本 2.10.62.10.6

2021-08-23 20:54:00 324

原创 Spark 爬坑记录之开发Scala版本冲突【2017存档】

若在maven 中配置了 org.scala-tools maven-scala-plugin compile testCompile ${scala.version}.6 -target:jvm-1.7 无需再在IDEA中配置 scala 的sdk注意这一行,最好标注小版本 2.10.62.10.6

2021-08-23 20:50:47 201

原创 将基于Spark 2.x 开发的LDA 程序 迁移至Spark 1.6 的环境【2017存档】

前言对方提供的LDA 聚类程序,是基于Spark 2.x 的,但是,我们的生产环境是Spark 1.6。 恩那么问题就来了,怎么让基于Spark 2.x 的代码在Spark 1.6 上跑起来。第一个想法是,只要把SparkSession 改为SparkContext 和 SQLContext 就行了。然后发现自己真的图样图森破。对方非常高端的使用了ml库,当然这不是问题。对方是用python 写的,当然这也不是问题毕竟小学生都要学python了,作为一个程序员不会python 就说不过去了对方的pytho

2021-08-23 20:48:09 97

原创 数据挖掘 & Spark MLlib 经验记录【2017存档】

1.数据挖掘是有目的的,Spark只是工具在数据挖掘操作前,需要明确,通过这些计算,你希望从这一堆数据中获取到什么。不然只是每个算法跑一遍,也只能证明你调用Spark API 的能力合格了。在最开始的时候,进入了一个误区,以为社区炒的火热的Spark是全知全能的。数据挖掘什么的,Spark就能搞定了。然而,Spark毕竟只是一个工具,使用工具归根结底还是人。最开始,只是想掌握Spark这种技术而已,从而忽视了数据挖掘的目的(当然,这也和团队构成有关,一个产品经理加我一个研发,总觉得和业务相关的事由产品经

2021-08-23 20:46:40 188

原创 Spark开发环境搭建【2018存档】

Spark本地安装Java 安装Spark 安装PySpark 安装Java安装这一部分不多赘述,配置好Java 环境变量即可。Spark 安装在官网下载所需版本的Spark 压缩包解压至对应目录,如 C:\dev\spark1.6.3配置环境变量这时,进入cmd 命令行,可以启动。Pyspark 安装要求在本机已经安装好Spark。此外python 3.6 版本不兼容Spark 1.6,使用时需要注意。新增环境变量:PYTHONPATH值为:%SPARK_HOME%\

2021-08-23 20:42:04 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除