0%

nodejs 更新

  1. `npm install -g n 对 n 模块进行全局安装

  2. 使用 n 命令进行更新
    n stable // 更新到稳定版
    n latest // 更新到最新版

  3. 使用 node -v 看是否已经更新完成了

查看文件的状态

在 Linux 下,一个文件有三种时间,分别是访问时间(Access)、修改时间(Modify)、状态改变时间(Change)。可以通过 stat 命令查看文件的状态
stat file
example: stat A.py

模型性能通常会随着时间而下降

观点:模型性能通常会随着时间而下降
因为新的数据在不断产生,俗话说学如逆水行舟,不进则退

两个 github 库

对象检测和实例分割

0x01 Python 好用的格式化

来自文章《Write Better Python Code Today》,从 Python 3.6 开始,f-string 是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快。
下面是一个简单例子 (注意大写的 F 也是有效的):

1
2
3
4
5
6
name = "Eric"
age = 74
f"Hello, {name}. You are {age}."
#or F"Hello, {name}. You are {age}."
# 输出
'Hello, Eric. You are 74.'

这个比赛算是我第一个做的数值类特征的比赛,主要以学习为主。学习的内容包括:

  • 数值特征数据的特征工程,从数据中构建算法需要的特征
  • 模型使用以及调参(包括 Lightgb, Xgboost 等等)

比赛内容和数据分析

这部分主要搞清楚几个问题:

  • 比赛内容是什么,以及给了哪些数据
  • 是分类问题还是回归问题

首先看赛题:

本赛题基于位置数据对海上目标进行智能识别和作业行为分析,要求选手通过分析渔船北斗设备位置数据,得出该船的生产作业行为,具体判断出是拖网作业、围网作业还是流刺网作业。初赛将提供 11000 条 (其中 7000 条训练数据、2000 条 testA、2000 条 testB) 渔船轨迹北斗数据。数据包含脱敏后的渔船 ID、经纬度坐标、上报时间、速度、航向信息,由于真实场景下海上环境复杂,经常出现信号丢失,设备故障等原因导致的上报坐标错误、上报数据丢失、甚至有些设备疯狂上报等。

数据示例:

  • 渔船 ID:渔船的唯一识别,结果文件以此 ID 为标示
  • x: 渔船在平面坐标系的 x 轴坐标
  • y: 渔船在平面坐标系的 y 轴坐标
  • 速度:渔船当前时刻航速,单位节
  • 方向:渔船当前时刻航首向,单位度
  • time:数据上报时刻,单位月日 时:分
  • type:渔船 label,作业类型

可以看出这是一个分类问题,所给数据是数值型特征。再来看一下结果的评价指标:

数据预处理

因为数据给的是一些 csv 文件,所以首先需要对所有的文件进行合并,生成一个训练文件和一个测试文件。这里是我参考的 baseline
baseline 采用的文件合并代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pandas as pd
import os

train_dir = "./data/hy_round1_train_20200102"
test_dir = "./data/hy_round1_testA_20200102"

test = pd.DataFrame(columns=['渔船ID', 'x', 'y', '速度', '方向', 'time'])

for root, dirs, files in os.walk(test_dir):
for file in files:
filename = os.path.join(root, file)
temp = pd.read_csv(filename)
test = pd.concat([test, temp])
print(test.info())

train = pd.DataFrame(columns=['渔船ID', 'x', 'y', '速度', '方向', 'time'])

for root, dirs, files in os.walk(train_dir):
for file in files:
filename = os.path.join(root, file)
temp = pd.read_csv(filename)
train = pd.concat([train, temp])
print(train.info())

test.to_csv("./data/test_origin.csv", index=None)
train.to_csv("./data/train_origin.csv", index=None)

这个代码没什么问题,但是实际跑起来却很慢,代码的瓶颈在于读取的数据是串行的,因此我们可以改造一个并行的加速版本。

来自知乎,觉得很有道理。原文

  • 在做开发的时候,主要是体力和精神紧绷,做不完的需求和紧迫的 deadline,没完没了的加班。体力上会更累一些,精神上虽然紧绷,但大部分的时候不慌。
  • 在做算法的时候,主要就是精神压力了。大量的不确定性,导致没有办法保证这次做的事情会不会有产出,没有产出就没有办法生存,会主动的做尝试很多 idea。不确定性带来的心理压力,是做开发的时候没有的,心累。

我的博客即将同步至腾讯云 + 社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=33juwuyf1pa8c

  1. conda 检查和 clone 环境

    1
    2
    codna info -e
    conda create -n tf20 --clone tf13 #创建tf20环境
  2. pip 使用阿里云的源
    Linux、Mac 下
    修改~/.pip/pip.conf(不存在就创建一个),加入如下配置:

    1
    2
    3
    4
    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=mirrors.aliyun.com

    windows 下,在当前用户目录下创建一个 pip 目录,即 C:\Users\ 用户名 \pip。在 pip 目录内新增一个 pip.ini 文件。加入如下配置:

    1
    2
    3
    4
    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=mirrors.aliyun.com
  3. 安装 tf20 和 pytorch

    1
    2
    pip install tensorflow-gpu
    pip install torch torchvision

《Relation Module for Non-Answerable Predictions on Reading Comprehension》

ACL 2019 paper, 论文地址

摘要

由于具有挑战性的阅读理解数据集的增加,机器阅读理解(MRC)近来引起了大量研究关注。在本文中,我们旨在提高 MRC 模型确定问题在给定上下文中是否具有答案的能力(例如,最近提出的 SQuAD 2.0 任务)。关系模块包括语义提取和关系信息。我们首先使用多头自我关注池从问题和上下文中提取高级语义作为对象。然后将这些语义对象传递到关系网络,该关系网络为句子中每个对象对生成关系得分。这些分数用于确定问题是否无法回答。我们使用 BiDAF 和 BERT 模型作为基线读取器,在 SQuAD 2.0 数据集上测试关系模块。在 BiDAF 阅读器上,我们获得 F1 精度的 1.8%增益,在 BERT 基本模型上,获得 1.0%的 F1 精度。这些结果表明我们的关系模块在 MRC 上的有效性。

  1. TensorFlow报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated, 解决方案:pip install numpy==1.16.0
  2. 国内镜像 ustc 稳定性大于 tuna, 配置.bashrc 如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    channels:
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    - https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
    - https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
    - https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
    - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
    - https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
    - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
    - defaults
    show_channel_urls: true
  3. 删除虚拟环境:conda remove -n your_env_name --all
  4. nohup 查看运行的后台进程 jobs -l
  5. Anaconda 导出环境 / 从外部安装环境,导出已有环境:conda env export > environment.yaml, 当我们想再次创建该环境,或根据别人提供的.yaml 文件复现环境时,可以:conda env create -f environment.yaml
  6. .tar.bz2 文件解压命令,从网络上下载到的源码包,最常见的是.tar.gz 包,还有一部分是.tar.bz2 包
    .tar.gz 格式解压为 tar -zxvf xx.tar.gz
    .tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
  7. Python 忽略警告信息:
    1
    2
    import warnings
    warnings.filterwarnings("ignore")
  8. python 命令生成 requestment.txt 文件,pip freeze > requirements.txt, 安装:pip install -r requirements.txt

  9. run nvidia-smi ,遇见 Failed to initialize NVML: Driver/library version mismatch 的错误。参考下面的解决方案:

    1
    2
    3
    4
    5
    6
    I had reinstalled nvidia driver: run these commands in root mode:
    1. systemctl isolate multi-user.target
    2. modprobe -r nvidia-drm
    3. Reinstall Nvidia driver: chmod +x NVIDIA-Linux-x86_64–410.57.run
    4. systemctl start graphical.target
    and finally check nvidia-smi

前言

项目 github 地址:https://github.com/iikira/BaiduPCS-Go

安装

  • 下载到本地:3.6 版本
  • scp 传输到服务器:scp -P 2222 C:\Users\lenovo\Pictures\BaiduPCS-Go-v3.6-linux-386.zip root@127.0.0.1:/home
  • 解压:unzip BaiduPCS-Go-v3.6-linux-386.zip
    询问是否覆盖:y
    进入目录:cd BaiduPCS-Go-v3.6-linux-386
    启动:./BaiduPCS-Go

登录

  • 登录:login
  • 然后按照提示输入用户名,密码。回车后,会让输入验证码。会提示打开浏览器查看验证码,可能试验登录多次,才正确。

然后让你输入验证手机号,会给你发短信,输入短信的验证码后,就能登录了。

操作

  • 登录进去后,查看有哪些百度网盘命令:help
  • 列出百度网盘的目录:ls
  • 下载百度网盘的文件: d 文件名
  • 下载完成后,会提示你,把文件下载到哪个目录了。 一般在 根目录下,点进去 root 文件夹,即 /root/Downloads/
  • 修改默认储存路径:BaiduPCS-Go config set -savedir download
  • 退出程序:运行命令 quitexit 或 组合键 Ctrl+C 或 组合键 Ctrl+D
  • 下载大文件:./BaiduPCS-Go config set -user_agent=""

退出

退出当前登录的百度帐号:logout