<?xml-stylesheet href="/rss.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>代码文思</title>
    <link>/</link>
    <description>Recent content on 代码文思</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>By liusanp.</copyright>
    <lastBuildDate>Sat, 14 Sep 2024 10:17:16 +0800</lastBuildDate>
    
        <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    
    
    
        <item>
        <title>YoloV8目标检测模型训练</title>
        <link>/post/yolov8/</link>
        <pubDate>Sat, 14 Sep 2024 10:17:16 +0800</pubDate>
        
        <guid>/post/yolov8/</guid>
        <description>代码文思 /post/yolov8/ -&lt;h1 id=&#34;图片标注&#34;&gt;图片标注&lt;/h1&gt;
&lt;p&gt;使用&lt;a href=&#34;https://github.com/HumanSignal/label-studio&#34;&gt;label-studio&lt;/a&gt;进行标注。&lt;/p&gt;
&lt;h1 id=&#34;模型训练&#34;&gt;模型训练&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;从 &lt;a href=&#34;https://github.com/liusanp/yolov8_train.git&#34;&gt;Git&lt;/a&gt; 克隆代码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;准备数据集&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 将label studio导出的yolo格式数据集，用handle_train_data.py切分&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 数据集目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# xxxx-20240914             // 数据标注根目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─train                 // 训练集用于模型的学习和训练&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | ├─images              // 图片存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | └─labels              // 标注结果存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─val                   // 验证集用于模型的调优和验证，避免过拟合&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | ├─images              // 图片存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | └─labels              // 标注结果存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─test                  // 测试集用于模型的最终评估，衡量其在真实环境中的性能&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | ├─images              // 图片存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | └─labels              // 标注结果存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# └─data.yaml             // 数据集配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# data.yaml配置：&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;path&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;xxxx-20240914 &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# dataset root dir  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;train&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;train &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# train images (relative to &amp;#39;path&amp;#39;) 118287 images  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;val&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;val &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# val images (relative to &amp;#39;path&amp;#39;) 5000 images  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;test&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;test &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 20288 of 40670 images, submit to   &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# Classes  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;nc&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#b452cd&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# number of classes  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;names&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;class1&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;class2&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;修改训练参数并启动训练&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改train.py&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 主要修改以下几个，其余根据需要修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改为训练集文件夹名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;data_name = &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;xxxx-20240914&amp;#39;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 首次训练则启用行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;model = YOLO(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;models/yolov8x.pt&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 二次训练则启用行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;model = YOLO(&lt;span style=&#34;color:#cd5555&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;runs/train/train-&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;{&lt;/span&gt;data_name&lt;span style=&#34;color:#cd5555&#34;&gt;}{&lt;/span&gt;train_idx&lt;span style=&#34;color:#cd5555&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;/weights/best.pt&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改从哪次结果继续训练，首次为空&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;train_idx = &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 如需随机角度内旋转数据增强则修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;degrees=&lt;span style=&#34;color:#b452cd&#34;&gt;100&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;启动训练&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python train.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;模型测试&#34;&gt;模型测试&lt;/h1&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改test.py&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 主要修改以下几个，其余根据需要修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改为训练集文件夹名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;data_name = &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;xxxx-20240914&amp;#39;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改从哪次结果测试，第一次为空&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;train_idx = &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改为第几次测试结果，第一次为空&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;detect_idx = &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/yolov8&#34;&gt;YoloV8目标检测模型训练&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/yolov8/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>zerotier配置节点内网互联</title>
        <link>/post/zerotier-nat/</link>
        <pubDate>Tue, 26 Sep 2023 15:36:48 +0800</pubDate>
        
        <guid>/post/zerotier-nat/</guid>
        <description>代码文思 /post/zerotier-nat/ -&lt;h1 id=&#34;zerotier配置节点内网互联&#34;&gt;zerotier配置节点内网互联&lt;/h1&gt;
&lt;h2 id=&#34;网络三层nat配置方法linux主机&#34;&gt;网络三层NAT配置方法（linux主机）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;假设zerotier虚拟局域网的网段是192.168.88.0 &lt;code&gt;局域网A 192.168.1.0&lt;/code&gt; &lt;code&gt;局域网B 192.168.2.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;(如果需要互联)在局域网A和B中需要各有一台主机安装zerotier并作为两个内网互联的网关&lt;/li&gt;
&lt;li&gt;分别是192.168.1.10（192.168.88.10） 192.168.2.10（192.168.88.20）#括号里面为虚拟局域网的IP地址&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;在zerotier网站的networks里面的managed-routes下配置路由表增加如下内容&#34;&gt;在zerotier网站的networks里面的Managed Routes下配置路由表,增加如下内容&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;#如果单向连接,仅需填写下方一个即可.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;192.168.1.0/24 via 192.168.88.10 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;192.168.2.0/24 via 192.168.88.20 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;开启内核转发&#34;&gt;开启内核转发&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;#echo &amp;#34;net.ipv4.ip_forward = 1&amp;#34; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;#sysctl -p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;防火墙设置&#34;&gt;防火墙设置&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 其中的 zt7nnig26 在不同的机器中不一样，你可以在路由器ssh环境中用 zerotier-cli listnetworks 或者 ifconfig 查询zt开头的网卡名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00688b&#34;&gt;PHY_IFACE&lt;/span&gt;=eth0; &lt;span style=&#34;color:#00688b&#34;&gt;ZT_IFACE&lt;/span&gt;=zt7nnig26
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo iptables -t nat -A POSTROUTING -o &lt;span style=&#34;color:#00688b&#34;&gt;$PHY_IFACE&lt;/span&gt; -j MASQUERADE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo iptables -A FORWARD -i &lt;span style=&#34;color:#00688b&#34;&gt;$PHY_IFACE&lt;/span&gt; -o &lt;span style=&#34;color:#00688b&#34;&gt;$ZT_IFACE&lt;/span&gt; -m state --state RELATED,ESTABLISHED -j ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo iptables -A FORWARD -i &lt;span style=&#34;color:#00688b&#34;&gt;$ZT_IFACE&lt;/span&gt; -o &lt;span style=&#34;color:#00688b&#34;&gt;$PHY_IFACE&lt;/span&gt; -j ACCEPT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 保存配置到文件，否则重启规则会丢失&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables-save
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/zerotier-nat&#34;&gt;zerotier配置节点内网互联&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/zerotier-nat/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>自建zerotier-planet</title>
        <link>/post/zerotier/</link>
        <pubDate>Tue, 26 Sep 2023 14:49:56 +0800</pubDate>
        
        <guid>/post/zerotier/</guid>
        <description>代码文思 /post/zerotier/ -&lt;h1 id=&#34;自建zerotier-planet&#34;&gt;自建zerotier-planet&lt;/h1&gt;
&lt;h2 id=&#34;必要条件&#34;&gt;必要条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;具有公网ip的服务器&lt;/li&gt;
&lt;li&gt;安装 docker&lt;/li&gt;
&lt;li&gt;安装 docker-compose&lt;/li&gt;
&lt;li&gt;防火墙开放TCP端口 4000/9993/3180 和UDP端口 9993&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;用法&#34;&gt;用法&lt;/h2&gt;
&lt;h3 id=&#34;部署ztncui&#34;&gt;部署ztncui&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;version&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;2.0&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;services&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;ztncui&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;container_name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ztncui&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;restart&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;always&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;environment&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- MYADDR=1.1.1.1&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;#改成自己的服务器公网IP&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- HTTP_PORT=4000&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- HTTP_ALL_INTERFACES=yes&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- ZTNCUI_PASSWD=password&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;#默认用户admin的密码&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;ports&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;4000:4000&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# web控制台入口&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;9993:9993&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;9993:9993/udp&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;3180:3180&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# planet/moon文件在线下载入口，如不对外提供。可防火墙禁用此端口。&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;volumes&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;./zerotier-one:/var/lib/zerotier-one&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;./ztncui/etc:/opt/key-networks/ztncui/etc&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 按实际路径挂载卷， 冒号前面是宿主机的， 支持相对路径&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;image&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;keynetworks/ztncui&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;创建planet和moon&#34;&gt;创建planet和moon&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/Jonnyan404/zerotier-planet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OR
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://gitee.com/Jonnyan404/zerotier-planet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;cd&lt;/span&gt; zerotier-planet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker cp mkmoonworld-x86_64 ztncui:/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker cp patch.sh ztncui:/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker &lt;span style=&#34;color:#658b00&#34;&gt;exec&lt;/span&gt; -it ztncui bash /tmp/patch.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker restart ztncui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;浏览器访问 &lt;code&gt;http://ip:4000&lt;/code&gt; 打开web控制台界面。&lt;/p&gt;
&lt;p&gt;浏览器访问 &lt;code&gt;http://ip:3180&lt;/code&gt; 打开planet和moon文件下载页面（亦可在项目根目录的&lt;code&gt;./ztncui/etc/myfs/&lt;/code&gt;里获取）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户名:admin&lt;/li&gt;
&lt;li&gt;密码:password&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;note:&lt;/strong&gt; 如果未指定密码,可执行 &lt;code&gt;docker exec -it ztncui cat /var/log/docker-ztncui.log|grep Password&lt;/code&gt; 获取密码.&lt;/p&gt;
&lt;h2 id=&#34;各客户端配置planet&#34;&gt;各客户端配置planet&lt;/h2&gt;
&lt;p&gt;客户端主要为Windows, Mac,Linux, Android&lt;/p&gt;
&lt;h3 id=&#34;windows-客户端&#34;&gt;Windows 客户端&lt;/h3&gt;
&lt;p&gt;先安装官方zerotier客户端，将生成的 &lt;code&gt;planet&lt;/code&gt; 文件覆盖粘贴到 &lt;code&gt;C:\ProgramData\ZeroTier One&lt;/code&gt; 中(这个目录是个隐藏目录，需要运允许查看隐藏目录才行)，然后重启zerotier-one服务。
&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309261519533.png&#34; alt=&#34;搜索服务&#34;&gt;
&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309261520758.png&#34; alt=&#34;重启服务&#34;&gt;
使用管理员身份打开PowerShell 执行命令加入组网，看到join ok字样就成功了。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PS C:&lt;span style=&#34;color:#cd5555&#34;&gt;\W&lt;/span&gt;indows&lt;span style=&#34;color:#cd5555&#34;&gt;\s&lt;/span&gt;ystem32&amp;gt; zerotier-cli join 网络id(就是在网页里面创建的那个网络)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#b452cd&#34;&gt;200&lt;/span&gt; join OK
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PS C:&lt;span style=&#34;color:#cd5555&#34;&gt;\W&lt;/span&gt;indows&lt;span style=&#34;color:#cd5555&#34;&gt;\s&lt;/span&gt;ystem32&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;登录管理后台可以看到有个新的客户端，勾选Authorized授权接入。
&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309261534037.png&#34; alt=&#34;授权&#34;&gt;
查看连接情况：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PS C:&lt;span style=&#34;color:#cd5555&#34;&gt;\W&lt;/span&gt;indows&lt;span style=&#34;color:#cd5555&#34;&gt;\s&lt;/span&gt;ystem32&amp;gt; zerotier-cli peers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#b452cd&#34;&gt;200&lt;/span&gt; peers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;ztaddr&amp;gt;   &amp;lt;ver&amp;gt;  &amp;lt;role&amp;gt; &amp;lt;lat&amp;gt; &amp;lt;link&amp;gt; &amp;lt;lastTX&amp;gt; &amp;lt;lastRX&amp;gt; &amp;lt;path&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fcbaeb9b6c 1.8.7  PLANET    &lt;span style=&#34;color:#b452cd&#34;&gt;52&lt;/span&gt; DIRECT &lt;span style=&#34;color:#b452cd&#34;&gt;16&lt;/span&gt;       &lt;span style=&#34;color:#b452cd&#34;&gt;8994&lt;/span&gt;     1.1.1.1/9993
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fe92971aad 1.8.7  LEAF      &lt;span style=&#34;color:#b452cd&#34;&gt;14&lt;/span&gt; DIRECT -1       &lt;span style=&#34;color:#b452cd&#34;&gt;4150&lt;/span&gt;     2.2.2.2/9993
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PS C:&lt;span style=&#34;color:#cd5555&#34;&gt;\W&lt;/span&gt;indows&lt;span style=&#34;color:#cd5555&#34;&gt;\s&lt;/span&gt;ystem32&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以看到有一个 PLANTET 和 LEAF 角色，连接方式均为 DIRECT(直连)，到这里就加入网络成功了。&lt;/p&gt;
&lt;h3 id=&#34;linux-客户端&#34;&gt;Linux 客户端&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;安装linux客户端软件 &lt;code&gt;curl -s https://install.zerotier.com | sudo bash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;进入目录 /var/lib/zerotier-one，替换目录下的 planet 文件&lt;/li&gt;
&lt;li&gt;重启 zerotier-one 服务(systemctl restart zerotier-one)&lt;/li&gt;
&lt;li&gt;加入网络 zerotier-cli join 网络 id&lt;/li&gt;
&lt;li&gt;管理后台同意加入请求&lt;/li&gt;
&lt;li&gt;zerotier-cli peers 可以看到 planet 角色&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;安卓客户端配置&#34;&gt;安卓客户端配置&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/kaaass/ZerotierFix&#34;&gt;ZerotierFix&lt;/a&gt;
&lt;a href=&#34;https://www.v2ex.com/t/768628&#34;&gt;Zerotier 非官方安卓客户端发布：支持自建 Moon 节点 - V2EX&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;私有-zerotier-planet-的优势&#34;&gt;私有 zerotier-planet 的优势:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;解除官方 25 的设备连接数限制&lt;/li&gt;
&lt;li&gt;提升手机客户端连接的稳定性&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;reference-link&#34;&gt;Reference Link&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.emengweb.com/p/zerotier%E7%9A%84planet%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%88%E6%A0%B9%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%89%E7%9A%84%E6%90%AD%E5%BB%BA%E8%B8%A9%E5%9D%91%E8%AE%B0%E3%80%82%E6%97%A0%E9%9C%80zerotier%E5%AE%98%E7%BD%91%E8%B4%A6%E5%8F%B7%E3%80%82&#34;&gt;zerotier的planet服务器（根服务器）的搭建踩坑记&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.mrdoc.fun/doc/443/&#34;&gt;https://www.mrdoc.fun/doc/443/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/key-networks/ztncui-aio&#34;&gt;https://github.com/key-networks/ztncui-aio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/zerotier&#34;&gt;自建zerotier-plant&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/zerotier/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>使用label-studio进行图片标注</title>
        <link>/post/label-studio/</link>
        <pubDate>Thu, 21 Sep 2023 16:35:30 +0800</pubDate>
        
        <guid>/post/label-studio/</guid>
        <description>代码文思 /post/label-studio/ -&lt;h1 id=&#34;使用label-studio进行图片标注&#34;&gt;使用label-studio进行图片标注&lt;/h1&gt;
&lt;p&gt;使用&lt;a href=&#34;https://github.com/HumanSignal/label-studio&#34;&gt;label-studio&lt;/a&gt;进行标注。&lt;/p&gt;
&lt;h2 id=&#34;1创建项目&#34;&gt;1、创建项目&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211532861.png&#34; alt=&#34;Snipaste_2023-09-21_14-27-49&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2配置项目&#34;&gt;2、配置项目&lt;/h2&gt;
&lt;h3 id=&#34;21打开项目&#34;&gt;2.1、打开项目&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211544729.png&#34; alt=&#34;image-20230921154406573&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;22打开配置&#34;&gt;2.2、打开配置&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211545110.png&#34; alt=&#34;image-20230921154459940&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;23选择标注类型&#34;&gt;2.3、选择标注类型&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211545196.png&#34; alt=&#34;image-20230921154557028&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;24选择目标检测类型&#34;&gt;2.4、选择目标检测类型&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211546994.png&#34; alt=&#34;image-20230921154626614&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;25添加标签&#34;&gt;2.5、添加标签&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211547175.png&#34; alt=&#34;image-20230921154723882&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;3导入图片&#34;&gt;3、导入图片&lt;/h2&gt;
&lt;h3 id=&#34;31打开导入框&#34;&gt;3.1、打开导入框&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211549273.png&#34; alt=&#34;image-20230921154937113&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;32选择图片并导入&#34;&gt;3.2、选择图片并导入&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211550143.png&#34; alt=&#34;image-20230921155032977&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;4标注图片&#34;&gt;4、标注图片&lt;/h2&gt;
&lt;h3 id=&#34;41选择图片&#34;&gt;4.1、选择图片&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211552998.png&#34; alt=&#34;image-20230921155232834&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;42标注图片&#34;&gt;4.2、标注图片&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211552786.png&#34; alt=&#34;image-20230921155252464&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;5导出结果&#34;&gt;5、导出结果&lt;/h2&gt;
&lt;h3 id=&#34;51选择已标注图片&#34;&gt;5.1、选择已标注图片&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211554844.png&#34; alt=&#34;image-20230921155440672&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;52选择导出格式并导出&#34;&gt;5.2、选择导出格式并导出&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202309211555314.png&#34; alt=&#34;image-20230921155500113&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/label-studio&#34;&gt;使用label-studio进行图片标注&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/label-studio/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>YoloV5目标检测模型训练</title>
        <link>/post/yolov5/</link>
        <pubDate>Thu, 21 Sep 2023 16:30:51 +0800</pubDate>
        
        <guid>/post/yolov5/</guid>
        <description>代码文思 /post/yolov5/ -&lt;h1 id=&#34;yolov5目标检测模型训练&#34;&gt;YoloV5目标检测模型训练&lt;/h1&gt;
&lt;h2 id=&#34;图片标注&#34;&gt;图片标注&lt;/h2&gt;
&lt;p&gt;使用labelimg进行图片标注&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install labelimg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 启动（在image_root目录启动）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# image_root              // 数据标注根目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─images                // 图片存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─labels                // 标注结果存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# └─labels.txt            // 预加载标签，一行一个&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;labelimg images labels.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/202303311152523.jpg&#34; alt=&#34;Snipaste_2023-03-31_11-52-15.jpg&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;模型训练&#34;&gt;模型训练&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/ultralytics/yolov5/tree/v7.0&#34;&gt;以yolov5-7.0为例&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;1从github下载zip包或者克隆代码&#34;&gt;1、从GitHub下载zip包或者克隆代码&lt;/h3&gt;
&lt;h3 id=&#34;2准备数据集&#34;&gt;2、准备数据集&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 数据集目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# image_root              // 数据标注根目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─train                 // 训练集&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | ├─images              // 图片存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | └─labels              // 标注结果存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# ├─val                   // 验证集&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | ├─images              // 图片存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# | └─labels              // 标注结果存放目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# └─data.yaml             // 数据集配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;data.yaml配置：
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;path&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;data/image_root &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# dataset root dir  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;train&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;train &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# train images (relative to &amp;#39;path&amp;#39;) 118287 images  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;val&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;val &lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# val images (relative to &amp;#39;path&amp;#39;) 5000 images  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# test: test-dev2017.txt  # 20288 of 40670 images, submit to   &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# Classes  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;nc&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#b452cd&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# number of classes  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;names&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;[&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;class1&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;class2&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;]&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;3下载模型&#34;&gt;3、下载模型&lt;/h3&gt;
&lt;p&gt;从&lt;a href=&#34;https://github.com/ultralytics/yolov5/releases&#34;&gt;Github releases&lt;/a&gt;下载预训练模型，可根据需要选择模型大小：yolov5s.pt、yolov5m.pt、yolov5l.pt、yolov5x.pt。将下载好的模型放在yolov5源码的models目录中，然后将选择的模型对应yaml文件中的nc修改为自己的分类数。&lt;/p&gt;
&lt;h3 id=&#34;4修改训练参数并启动训练&#34;&gt;4、修改训练参数并启动训练&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 修改train.py中的parse_opt()函数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 主要修改以下几个，其余根据需要修改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#008b45&#34;&gt;parse_opt&lt;/span&gt;(known=&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;False&lt;/span&gt;):  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#228b22&#34;&gt;# 初始模型权重&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    parser.add_argument(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;--weights&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#658b00&#34;&gt;type&lt;/span&gt;=&lt;span style=&#34;color:#658b00&#34;&gt;str&lt;/span&gt;, default=ROOT / &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;models/yolov5m.pt&amp;#39;&lt;/span&gt;, help=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;initial weights path&amp;#39;&lt;/span&gt;)  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#228b22&#34;&gt;# 模型配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    parser.add_argument(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;--cfg&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#658b00&#34;&gt;type&lt;/span&gt;=&lt;span style=&#34;color:#658b00&#34;&gt;str&lt;/span&gt;, default=ROOT / &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;models/yolov5m_2.yaml&amp;#39;&lt;/span&gt;, help=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;model.yaml path&amp;#39;&lt;/span&gt;)  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#228b22&#34;&gt;# 训练数据集配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    parser.add_argument(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;--data&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#658b00&#34;&gt;type&lt;/span&gt;=&lt;span style=&#34;color:#658b00&#34;&gt;str&lt;/span&gt;, default=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;image_root/data.yaml&amp;#39;&lt;/span&gt;, help=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;dataset.yaml path&amp;#39;&lt;/span&gt;)  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#228b22&#34;&gt;# 超参配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    parser.add_argument(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;--hyp&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#658b00&#34;&gt;type&lt;/span&gt;=&lt;span style=&#34;color:#658b00&#34;&gt;str&lt;/span&gt;, default=ROOT / &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;data/hyps/hyp.scratch-low.yaml&amp;#39;&lt;/span&gt;, help=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;hyperparameters path&amp;#39;&lt;/span&gt;)  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#228b22&#34;&gt;# 训练迭代数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    parser.add_argument(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;--epochs&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#658b00&#34;&gt;type&lt;/span&gt;=&lt;span style=&#34;color:#658b00&#34;&gt;int&lt;/span&gt;, default=&lt;span style=&#34;color:#b452cd&#34;&gt;100&lt;/span&gt;, help=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;total training epochs&amp;#39;&lt;/span&gt;)  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#228b22&#34;&gt;# 训练批次大小&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    parser.add_argument(&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;--batch-size&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#658b00&#34;&gt;type&lt;/span&gt;=&lt;span style=&#34;color:#658b00&#34;&gt;int&lt;/span&gt;, default=&lt;span style=&#34;color:#b452cd&#34;&gt;12&lt;/span&gt;, help=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;total batch size for all GPUs, -1 for autobatch&amp;#39;&lt;/span&gt;)  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;5根据训练结果修改超参&#34;&gt;5、根据训练结果修改超参&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;lr0&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#b452cd&#34;&gt;0.01&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# initial learning rate (SGD=1E-2, Adam=1E-3)  &lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b008b;font-weight:bold&#34;&gt;lrf&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#b452cd&#34;&gt;0.001&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# final OneCycleLR learning rate (lr0 * lrf)&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;模型预测&#34;&gt;模型预测&lt;/h2&gt;
&lt;p&gt;使用detect.py预测&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/yolov5&#34;&gt;YoloV5目标检测模型训练&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/yolov5/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>编译arm64平台WebRTC</title>
        <link>/post/compile-arm64-webrtc/</link>
        <pubDate>Tue, 06 Dec 2022 18:23:34 +0800</pubDate>
        
        <guid>/post/compile-arm64-webrtc/</guid>
        <description>代码文思 /post/compile-arm64-webrtc/ -&lt;h2 id=&#34;前置软件&#34;&gt;前置软件&lt;/h2&gt;
&lt;p&gt;1、安装Chromium depot tools①&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 拉取源码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 添加环境变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#34;export PATH=&lt;/span&gt;&lt;span style=&#34;color:#00688b&#34;&gt;$PWD&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;/depot_tools:&lt;/span&gt;&lt;span style=&#34;color:#00688b&#34;&gt;$PATH&lt;/span&gt;&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#34;&lt;/span&gt; &amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;2、执行安装编译依赖脚本②，该脚本需要在第一次同步代码后才有&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./build/install-build-deps.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3、执行下载编译环境脚本②，该脚本需要在第一次同步代码后才有&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;4、安装编译器&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install binutils-aarch64-linux-gnu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;编译&#34;&gt;编译&lt;/h2&gt;
&lt;p&gt;1、拉取源码③，后执行前置软件2和3&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir webrtc-checkout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;cd&lt;/span&gt; webrtc-checkout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fetch --nohooks webrtc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gclient sync
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;2、切换到主分支&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;cd&lt;/span&gt; src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git checkout main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3、生成编译文件（执行其中一个）&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 参照④&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gn gen out/Linux-arm64 --args=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#34;target_os=\&amp;#34;linux\&amp;#34; target_cpu=\&amp;#34;arm64\&amp;#34; is_debug=false rtc_include_tests=false rtc_use_h264=false is_component_build=false use_rtti=true use_custom_libcxx=false rtc_enable_protobuf=false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 参照⑤&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gn gen out/Linux-arm64 --args=&lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#34;target_os=\&amp;#34;linux\&amp;#34; target_cpu=\&amp;#34;arm64\&amp;#34; is_debug=false rtc_include_tests=false rtc_use_h264=true is_component_build=false use_rtti=true use_custom_libcxx=false rtc_enable_protobuf=false is_clang=false treat_warnings_as_errors=false use_ozone=true rtc_include_pulse_audio=false use_libjpeg_turbo=false use_system_libjpeg=true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;4、编译③&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;autoninja -C out/Linux-arm64
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;引用&#34;&gt;引用&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up&#34;&gt;Install the Chromium depot tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://webrtc.googlesource.com/src/+/main/docs/native-code/development/prerequisite-sw/index.md&#34;&gt;WebRTC development - Prerequisite software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md&#34;&gt;WebRTC development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/webrtc-sdk/webrtc-build/blob/main/docs/build.md#linux-armarm64&#34;&gt;Build command for all platforms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.csdn.net/tjyuanxi/article/details/124693182&#34;&gt;gcc编译webrtc arm64版&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/compile-arm64-webrtc&#34;&gt;编译arm64平台WebRTC&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/compile-arm64-webrtc/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>UE5在Windows打包Linux项目</title>
        <link>/post/ue-package-linux/</link>
        <pubDate>Mon, 05 Dec 2022 20:40:21 +0800</pubDate>
        
        <guid>/post/ue-package-linux/</guid>
        <description>代码文思 /post/ue-package-linux/ -&lt;p&gt;1、在官网下载交叉编译工具链：&lt;a href=&#34;https://docs.unrealengine.com/5.0/zh-CN/linux-development-requirements-for-unreal-engine/&#34;&gt;https://docs.unrealengine.com/5.0/zh-CN/linux-development-requirements-for-unreal-engine/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/ue-package-linux-1.png&#34; alt=&#34;ue-package-linux-1&#34;&gt;&lt;/p&gt;
&lt;p&gt;2、默认安装后在 &lt;code&gt;cmd&lt;/code&gt; 中输入 &lt;code&gt;%LINUX_MULTIARCH_ROOT%x86_64-unknown-linux-gnu\bin\clang++ -v&lt;/code&gt; 测试是否安装成功&lt;/p&gt;
&lt;p&gt;3、重启ue5&lt;/p&gt;
&lt;p&gt;4、刷新平台状态&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/ue-package-linux-2.png&#34; alt=&#34;ue-package-linux-2&#34;&gt;&lt;/p&gt;
&lt;p&gt;5、如果打包平台前出现Linux图标，则已经可以打包Linux项目&lt;/p&gt;
&lt;p&gt;6、选择对应平台打包&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://ll.lao4g.top/d/Oneindex/FILE/BlogImg/ue-package-linux-3.png&#34; alt=&#34;ue-package-linux-3&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/ue-package-linux&#34;&gt;UE5在Windows打包Linux项目&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/ue-package-linux/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>Linux设置系统代理</title>
        <link>/post/linux-system-proxy/</link>
        <pubDate>Sun, 04 Dec 2022 00:05:08 +0800</pubDate>
        
        <guid>/post/linux-system-proxy/</guid>
        <description>代码文思 /post/linux-system-proxy/ -&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 设置代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;http_proxy&lt;/span&gt;=http://127.0.0.1:20172
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;HTTP_PROXY&lt;/span&gt;=http://127.0.0.1:20172
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;https_proxy&lt;/span&gt;=http://127.0.0.1:20172
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;HTTPS_PROXY&lt;/span&gt;=http://127.0.0.1:20172
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;all_proxy&lt;/span&gt;=socks5h://127.0.0.1:20173
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;ALL_PROXY&lt;/span&gt;=socks5h://127.0.0.1:20173
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;no_proxy&lt;/span&gt;=localhost,127.0.0.0/8,::1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;NO_PROXY&lt;/span&gt;=localhost,127.0.0.0/8,::1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 查看代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;$http_proxy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 取消代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; http_proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; HTTP_PROXY
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; https_proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; HTTPS_PROXY
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; all_proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; ALL_PROXY
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; no_proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;unset&lt;/span&gt; NO_PROXY
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# git设置代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --global http.proxy &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;socks5://127.0.0.1:1080&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --global https.proxy &lt;span style=&#34;color:#cd5555&#34;&gt;&amp;#39;socks5://127.0.0.1:1080&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# git取消代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --global --unset http.proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --global --unset https.proxy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/linux-system-proxy&#34;&gt;Linux设置系统代理&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/linux-system-proxy/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>Anaconda3</title>
        <link>/post/anaconda3/</link>
        <pubDate>Sun, 10 Jul 2022 17:28:13 +0800</pubDate>
        
        <guid>/post/anaconda3/</guid>
        <description>代码文思 /post/anaconda3/ -&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 不自启动base，linux环境安装完成后会自动启动默认base环境 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda config --set auto_activate_base &lt;span style=&#34;color:#658b00&#34;&gt;false&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 切换环境 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda activate 环境名 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 创建一个名为test的环境并指定python版本为3(的最新版本)，也可指定详细python版本 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda create -n &lt;span style=&#34;color:#658b00&#34;&gt;test&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;python&lt;/span&gt;=&lt;span style=&#34;color:#b452cd&#34;&gt;3&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda create -n &lt;span style=&#34;color:#658b00&#34;&gt;test&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;python&lt;/span&gt;=3.7 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 复制环境 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda create -n 新环境名 --clone 旧环境名 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 列出conda管理的所有环境 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda env list 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 列出当前环境的所有包 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda list 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 安装python包时要先切换到具体环境 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# conda方式安装python包 -i 指定源 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda install requests 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# pip方式安装python包 -i 指定源 -r 指定requirements.txt &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install requests 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# conda方式卸载requets包 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda remove requests 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# pip方式卸载requets包 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda remove requests 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 删除test环境及下属所有包 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda remove -n &lt;span style=&#34;color:#658b00&#34;&gt;test&lt;/span&gt; --all 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 更新requests包 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda update requests 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 导出当前环境的包信息 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda env &lt;span style=&#34;color:#658b00&#34;&gt;export&lt;/span&gt; &amp;gt; environment.yaml 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 用配置文件创建新的虚拟环境 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda env create -f environment.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 生成requirements.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 安装pipreqs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install pipreqs
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 在当前目录生成&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pipreqs . --encoding utf8 --force
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 创建虚拟环境&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkvirtualenv -p python3.7 venvname
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 切换虚拟环境&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;workon venvname
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 查看conda信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda info
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda info --envs
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 安装失败断掉&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 清楚缓存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda clean --all
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 本地安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;conda install --use-local ./pytorch-1.10.1.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 切换windows位数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 打包为exe的话，版本尽量选择python3.6+32位版本，因为win64位系统向下兼容32位程序，&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 但是如果不考虑32位系统的话无所谓，直接python64位版本直接打包，只是只能在win64位系统上跑。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 从64位切换到32位开发模式: &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;set&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;CONDA_FORCE_32BIT&lt;/span&gt;=&lt;span style=&#34;color:#b452cd&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#228b22&#34;&gt;# 再切回64位开发模式: &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#658b00&#34;&gt;set&lt;/span&gt; &lt;span style=&#34;color:#00688b&#34;&gt;CONDA_FORCE_32BIT&lt;/span&gt;=&lt;span style=&#34;color:#b452cd&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip清华源
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;https://pypi.tuna.tsinghua.edu.cn/simple
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/Anaconda3&#34;&gt;Anaconda3&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/anaconda3/ - By liusanp.</description>
        </item>
    
    
    
        <item>
        <title>ES深度分页</title>
        <link>/post/es%E6%B7%B1%E5%BA%A6%E5%88%86%E9%A1%B5/</link>
        <pubDate>Sun, 26 Jun 2022 11:59:58 +0800</pubDate>
        
        <guid>/post/es%E6%B7%B1%E5%BA%A6%E5%88%86%E9%A1%B5/</guid>
        <description>代码文思 /post/es%E6%B7%B1%E5%BA%A6%E5%88%86%E9%A1%B5/ -&lt;p&gt;ES分页查询有三种情况：&lt;/p&gt;
&lt;h2 id=&#34;from--size&#34;&gt;from + size&lt;/h2&gt;
&lt;p&gt;从各分片查询（from + size）条，合并后取（from - size）条
注：（from+size）不能超过 max_result_window，默认10000条&lt;/p&gt;
&lt;h2 id=&#34;scroll&#34;&gt;scroll&lt;/h2&gt;
&lt;p&gt;不适合实时查询，用于查询大批量数据遍历，游标过期会报错
所有结果缓存，类似查询时间点快照，用游标遍历
不能聚合，只有最初的查询有聚合结果
最佳排序是 _doc 入库时间
返回结果最大条数是size * 分片数&lt;/p&gt;
&lt;h2 id=&#34;search_after&#34;&gt;search_after&lt;/h2&gt;
&lt;p&gt;正常查询后，将前一次查询的最后一条数据的sort放置在search_after字段查询
实时查询，排序可能会变更，并行滚动多个查询
只能一页页下翻&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;原链接：&lt;a href=&#34;/post/ES%E6%B7%B1%E5%BA%A6%E5%88%86%E9%A1%B5&#34;&gt;ES深度分页&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
- /post/es%E6%B7%B1%E5%BA%A6%E5%88%86%E9%A1%B5/ - By liusanp.</description>
        </item>
    
    
  </channel>
</rss> 