目录

  1. 服务器配置jupyter notebook
  2. 服务器添加root权限
  3. 服务器添加ssh链接gitlab
  4. 服务器修改pip&conda源
  5. 使用pycharm链接服务器
  6. Git操作三板斧
  7. StanfordCoreNLP工具启动命令
  8. ElasticSearch踩坑
  9. Docker安装ES
  10. 服务器通过docker部署brat
  11. Docker使用速成
  12. stanza踩坑
  13. MongoDB踩坑
  14. paddle框架踩坑

服务器配置jupyter notebook


如何在服务器启动jupyter服务

1.生成配置文件

jupyter notebook --generate-config

2.生成密码

1
2
3
4
5
6
7
$ipython
In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:cd723d3e4b0a:e5ca450bbedb63511c78989ea16b8d26941227fb'

3.修改配置文件

vim ~/.jupyter/jupyter_notebook_config.py

4.启动jupyter


如何将虚拟环境解释器添加到Jupyter中

  1. 激活环境

  2. 安装支持虚拟环境的插件nb_condaconda install nb_conda

或者可以直接为虚拟环境安装ipykernel包。即:conda install -n myproject ipykernel

注: ipykernel比较重要

解决:python -m ipykernel install --user --name 环境名称 --display-name "显示的名称"

服务器添加root权限

  1. 增加一个账号的ssh登陆权限
    sudo /root/join_domain_linux/ssh_AllowUser.sh add <domain-user-name>
  2. 去掉一个域账号的ssh登陆权限
    sudo /root/join_domain_linux/ssh_AllowUser.sh del <domain-user-name>
  3. 增加sudo执行root命令
    sudo /root/join_domain_linux/sudo_nopwd_User.sh add <domain-user-name>
  4. 去掉一个域账号的sudo执行root命令
    sudo /root/join_domain_linux/sudo_nopwd_User.sh del <domain-user-name>
附:ssh_AllowUser.sh
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@!/bin/sh

action=$1
user=$2

if [ $# -ne 2 ];then
echo -e "Usage: ./ssh_AllowUser.sh < add | del > [-u | -g] < username > \n "
echo -e "example(add) : ./ssh_AllowUser.sh add -u testUser"
echo -e "example(del) : ./ssh_AllowUser.sh del -u testUser"
exit 8
fi

if [`echo $user | grep @xx.com` == '']; then
user=$user'@xx.com'
else
user=$user
fi

oldline=`cat /etc/sssd/sssd.conf | grep simple_allow_users`
if [ $action == 'add' ] ;then
if [ $user == 'root' ] ;then
sed -i "s/^PermitRootLogin .*/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart > /dev/null
else
echo "AllowUsers $user"
if echo $oldline | grep "\b$user\b" >/dev/null ;then
echo "$user already exise"
else
newline="$oldline, $user"
sed -i "s/$oldline/$newline/" /etc/sssd/sssd.conf
service sssd restart > /dev/null
fi

fi

elif [ $action == 'del' ] ; then
if [ $user == 'root' ] ;then
sed -i "s/#PermitRootLogin .*/PermitRootLogin no/g" /etc/ssh/sshd_config
sed -i "s/^PermitRootLogin .*/PermitRootLogin no/g" /etc/ssh/sshd_config
service sshd restart > /dev/null 2>&1
else
newline=`echo $oldline | sed "s/, $user//"`
sed -i "s/$oldline/$newline/" /etc/sssd/sssd.conf
service sssd restart > /dev/null
fi


else
echo "\$1 arg : only 'add' or 'del' can be entered"
exit 8
fi
附:sudo_nopwd_User.sh
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@!/bin/sh

if [ $# == 2 ]
then
action=$1
action_type='-u'
name=$2
else
action=$1
action_type=$2
name="$3 $4"
fi

if [ $# -gt 4 ];then
echo -e "Usage: ./sudo_nopwd_User.sh < add | del > [-u|-g] [< username >|< groupname >] \n "
echo "example(add) : ./sudo_nopwd_User.sh add -u testUser"
echo -e "example(del) : ./sudo_nopwd_User.sh del -u testUser\n"
echo "example(add) : ./sudo_nopwd_User.sh add -g testGroup"
echo "example(add) : ./sudo_nopwd_User.sh del -g testGroup"
exit 8
fi

oldline=`cat /etc/sudoers | grep '$name'`

if [ $action == 'add' ] ;then
name=$(echo $name)
if [ $action_type == '-u' ];then
if grep "$name ALL=(ALL) NOPASSWD:ALL" /etc/sudoers ; then
echo "$name already exise"
else
echo "$name ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
echo "success"
fi
fi
if [ $action_type == '-g' ];then
name=$(echo $name)
name=${name// /\\x20} # 将组中可能出现的空格转义
name=${name//\\/\\\\} # 将可能出现的\转义
if grep "%$name ALL=(ALL) NOPASSWD:ALL" /etc/sudoers ; then
echo "%$name already exise"
else
echo "%$name ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
echo "success"
fi
fi

elif [ $action == 'del' ] ; then
sed -i "/$name/d" /etc/sudoers
echo "success"

else
echo "\$1 arg : only 'add' or 'del' can be entered"
exit 8
fi

服务器添加ssh链接gitlab

step 1

ssh-keygen -t rsa -C "xxx@xxx.com"

step 2

复制id_rsa.pub的所有内容

step 3

去gitlab添加

神秘代码:git pull origin service/xxx_xxx

服务器修改pip&conda源

pip源

linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url至tsinghua,内容如下:

1
2
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

codna源

将以上配置文件写在~/.condarc中
vim ~/.condarc

1
2
3
4
5
6
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
ssl_verify: true

使用pycharm链接服务器

Step1. 按图中标注选择”Automatic Upload”,这样可以每次使用Ctrl+s保存的时候自动上传到服务器。然后点击”Configuration”进行配置

image

Step2. 按图所示,增加一个配置

image

Step3. 这里”SFTP host”填写服务器ip地址,然后填写一些信息

image

Step4. 注意这里部分的配置,这里是确定代码同步到服务器的目录结构,点击最右侧”…”直接在弹窗中选择即可。第二个红框内把第一个红框的内容复制一遍就ok,具体的配置我也不了解为啥。

image

Git操作三板斧

  1. 拉去git clone xxx
  2. 查看所有分支: git branch --all
  3. 在本地拉取某一个远程分支: git checkout -b 本地分支名 远程分支名
  4. push: git push origin HEAD:MultiLabelClassification

StanfordCoreNLP工具启动命令

java -Xmx4g -cp "/home/stanford-corenlp-full-2018-10-05/*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 8866


通过Docker

Dockerfile编写:

1
2
3
4
FROM openjdk
WORKDIR /dd
ADD . /dd
CMD ["java", "-Xmx8g", "-cp" ,"*" ,"edu.stanford.nlp.pipeline.StanfordCoreNLPServer" ,"-port" ,"8866"]
build

docker build /home/stanford-corenlp-full-2018-10-05/ -t stanfordcorenlp_chinese:v3.9.2

run
  • docker run -itd -p 8866:8866 --name stanfordcorenlp_chinese_container stanfordcorenlp_chinese:v3.9.2
  • docker run -itd -p 8866:8866 --net host --name stanfordcorenlp_chinese_container stanfordcorenlp_chinese:v3.9.2

ElasticSearch踩坑

大概是官网:https://www.elastic.co/cn/downloads/elasticsearch

一些链接:

其他回答:

安装

Windows下安装

  1. 去官网下载并解压缩
  2. 双击执行 elasticsearch.bat,稍等片刻,打开浏览器,输入 http://localhost:9200 ,显式以下画面,说明ES安装成功:
    image
  3. 安装head插件,此处有坑,见下一楼详情。
  4. 安装kibana,参考:https://www.elastic.co/guide/cn/kibana/current/windows.html ,下载以后运行 ./bin/kibana.bat,然后访问http://localhost:5601/

Linux下安装

  1. 官网(https://www.elastic.co/cn/downloads/past-releases#elasticsearch )下载并配置,参考楼下坑2
  2. 使用docker安装,参考:https://www.cnblogs.com/jianxuanbing/p/9410800.html

坑1: 安装head插件

进入bin目录执行:

plugin install mobz/elasticsearch-head

此处可能报错为:

image

需要执行:

elasticsearch-plugin install mobz/elasticsearch-head

但是也可能遇到这个错误:

image

因此我们要通过以下操作来安装:

git clone https://github.com/mobz/elasticsearch-head.git

进入该文件夹执行

npm install # 这一步如果卡死了可以中断重新安一下

然后安装好了以后在此目录执行

npm start

见到如下方式说明成功:

image

在./config/elasticsearch.yml里面新增这句:

1
2
http.cors.enabled: true
http.cors.allow-origin: "*"

接下来修改head/Gruntfile.js,这个js文件在根目录下,Ctrl+F搜索connect关键词找到这个位置并新增红框的那句:

image

然后重启npm以及elasticsearch,出现head出现以下说明成功:

image

参考:

备注:

有链接要改head/_site/app.js

1
2
3
4
5
编辑head/_site/app.js,修改head连接es的地址,将localhost修改为es的IP地址  
# 原配置
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
# 将localhost修改为ES的IP地址
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://YOUR-ES-IP:9200";

实际上我修改以后并没有成功,所以我没有改这句

坑2-linux下配置安装-版本7.4.2

遇到以下问题:

image

参考:https://blog.51cto.com/xpleaf/2327317

对于问题1,有以下解决方式:

  • 临时修改:
    ulimit -n 65536
    但是重新登录后就会恢复成默认值了。

  • 永久修改
    修改/etc/security/limits.conf配置,如下:

1
2
hadoop          soft    nofile  65536   # soft表示为超过这个值就会有warnning
hadoop hadr nofile 100000 # hard则表示不能超过这个值

对于问题2,有以下解决方式:

  • 查看当前值
    sysctl vm.max_map_count
  • 临时设置
    sysctl -w vm.max_map_count=262144
    但是重启系统后就会失效。

  • 永久性设置
    修改配置文件/etc/sysctl.conf,如下:

    1
    vm.max_map_count=262144

需要重启后才生效。

对于问题3,有以下解决方式:

在安装目录下elasticsearch-7.3.0\config\elasticsearch.yml,将cluster.initial_master_nodes: ["node-1"]的注释放开,即可解决(实际没有解决)
(参考:http://longlonggo.com/post/436.html)

修改discovery.seed_hosts: []成服务器的IP,此错误解决,参考:https://discuss.elastic.co/t/problems-with-access-to-elasticsearch-form-outside-machine/172450/3

Docker安装ES

  1. 安装

    docker pull elasticsearch:6.5.0

  2. 启动

    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:6.5.0

  3. 安装ik分词器

    1
    2
    3
    4
    cd /usr/share/elasticsearch/plugins/
    elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.0/elasticsearch-analysis-ik-6.5.0.zip
    exit
    docker restart elasticsearch
  4. docker安装kibana

    1. 安装:docker pull kibana:7.2.0
    2. 启动

      1
      2
      docker run --name kibana --link=elasticsearch:test  -p 5601:5601 -d kibana:7.2.0
      docker start kibana

问题记录:

出现一种情况:

在DL5通过docker部署的ES,在DL4上无法用python访问(DL5正常),但能够通过curl请求,经过一系列测试发现,用:Elasticsearch(hosts=[{"host": 'xxx', "port": 9200}])可以链接,用Elasticsearch(hosts=[{"host": 'xxx', "port": 9200}]), sniff_on_start=True, sniff_on_connection_fail=True,sniff_timeout=60)就不可以

服务器通过docker部署brat

  1. 拉取镜像:docker pull cassj/brat
  2. 启动:docker run -itd --name brat_20210113 -p 8867:80 -e BRAT_USERNAME="brat" -e BRAT_PASSWORD="brat" -e BRAT_EMAIL="brat@mark.com" -v /home/research/nlp/brat_20210113:/bratdata cassj/brat

    1
    2
    3
    4
    5
    6
    7
    8
    9
    brat:
    image: mark/brat:$VERSION
    restart: always
    environment:
    - BRAT_USERNAME=brat
    - BRAT_PASSWORD=brat
    - BRAT_EMAIL=brat@mark.com
    volumes:
    - brat-data:/bratdata

Docker使用速成

  1. 安装dockersudo apt-get install docker.io
  2. 拉取所需镜像docker pull ubuntu,搜索所需镜像使用:docker search ubuntu,注意OFFICIAL
  3. 编写Dockerfile以及requirement.txt
  4. 创建修改的镜像sudo docker build /home/similarity_docker/ -t similarity-docker。这里similarity-docker是创建的镜像的名。
  5. 打包docker save -o similarity-docker.tar similarity-docker,这里使用的是第四步创建的镜像。
  6. copy到服务器
  7. 解压/加载docker load -i similarity-docker.tar
  8. 跑服务sudo docker run -itd -p 8869:8869 --name sim-docker similarity-docker

注:如果是深度学习相关需要用nvidia-docker

追加重启

docker container update --restart=always 容器名字

使用gpu

--gpus all

查询依赖

1
docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=XXX)

XXX指镜像ID

查看Container的IP

1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

stanza踩坑

Stanza is a collection of accurate and efficient tools for the linguistic analysis of many human languages. Starting from raw text to syntactic analysis and entity recognition, Stanza brings state-of-the-art NLP models to languages of your choosing.

中文模型下载:

存放路径:

image

调用示例:

image

1
2
3
4
>>> d = nlp_handle("第二十五条电网企业负责对分布式光伏发电项目的全部发电量、上网电量分别计量,免费提供并安装电能计量表,不向项目单位收取系统备用容量费。电网企业在有关并网接入和运行等所有环节提供的服务均不向项目单位收取费用。")
>>> dir(d)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_ents', '_num_tokens', '_num_words', '_process_sentences', '_sentences', '_text', 'add_property', 'build_ents', 'entities', 'ents', 'from_serialized', 'get', 'get_mwt_expansions', 'iter_tokens', 'iter_words', 'num_tokens', 'num_words', 'sentences', 'set', 'set_mwt_expansions', 'text', 'to_dict', 'to_serialized']
>>>

<span id=”mongodb>MongoDB踩坑</span>

安装MongoDB

  1. windows

    1. 访问https://www.mongodb.com/download-center/community ,选择所需版本,我使用了Community版本,因为不用登录
    2. 安装刚刚下载的包,建议选择custom,然后在接下来的步骤中安装MongoDB Compass选项去掉,因为没有梯子可能会卡死,compass是一个可视化界面,可以后续通过https://www.mongodb.com/products/compass 下载安装
  2. Linux服务器

    1. https://www.mongodb.org/dl/linux/x86_64 选择一个合适的版本wget到服务器(以我下载的mongodb-linux-x86_64-rhel62-v4.2-latest.tgz为例)
    2. 解压:tar -xvzf mongodb-linux-x86_64-rhel62-v4.2-latest.tgz,并将此文件夹改名为MongoDB
    3. 新建文件夹:data, log, conf,在data文件夹中新建一db文件夹
    4. 进入conf文件夹新建一mongodb.conf进行配置,image
      主要设置这几个参数,最后一个fork参数是指是否以后台运行

启动MongoDB服务

  1. Windows

    待补充,打开compass连接默认数据库就启动了,以后也会随电脑自启动

  2. Linux服务器

    ./bin/mongod -f ./conf/mongodb.conf

    意思是使用bin文件夹中的mongod,并指定使用mongodb.conf配置文件进行运行,看到successfully即表示运行成功

    也可以通过命令行的方式:

     `mongod --dbpath d:/mongodb/data/data  --port 27137 --logpath d:/mongodb/logs --logappend `
    

进入MongoDB后台

  1. Windows

    请用compass

  2. Linux服务器

    ./bin/mongo --port xxxx

    此处有2坑。

    1. 这里执行的是bin文件夹的`mongo`与上一步的`mongod`差一个字母
    2. 如果没有使用默认的端口,此处进去后台需要指定*.conf中的端口,否则找不到
    

基础MongoDB后台命令

  • 创建数据库

    use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库。

  • 查看所有数据库

    show dbs 注意,如果新创建了数据库但是没有插入数据,这里是不会显示的

  • 查看某数据库下所有collection

    show collections

  • 查看当前在哪个数据库上操作

    db

  • 删除当前所在的数据库

    db.dropDatabase()

  • 创建collection

    • 隐式创建:db.my_coll.insert({'test':'11'})
    • 显式创建:db.creatCollection('my_coll)

pymongo

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
27
28
29
30
31
32
33
# import
from pymongo import MongoClient

# 连接库,注意需要启动服务并保证端口准确
client = MongoClient('mongodb://localhost:27017')

# 选择其中一个数据库,如果没有则新建(类似于`use Material`)
db = client.Material

# 获取所有collection名称
colls = db.list_collection_names()

# 选择其中一个集合,如果没有则新建(类似于`db.createCollection()`)
coll_act = db.articles

# 插入数据——一次性插入多个
# ordered参数指示如果遇到异常是否继续,True为当场退出
# 有网友说一次只能插入1000条,但是我测试好像没有这个问题
coll_act.insert_many(lst, ordered=False)

# 插入数据——一次插入一个
coll_act.insert_one({'test': 't'})

# 查找数据,返回的是cursor,可以使用np.array()或者pd.DataFrame()转
tmp = np.array(list(coll_act.find({}, {'vector': 1, '_id': 0}) # 1表示选择这个字段,无论如何都会返回_id,因此此字段置为0。注意,find里面有两个大括号
tmp = pd.DataFrame(list(coll_act.find())) # 这个很好使,注意先要转化为list

# 查找——select article, array FROM col WHERE _id=ObjectId("")
from bson.objectid import ObjectId
coll_act.find({'_id': ObjectId(file_id)}, {'article_id': 1, 'vector': 1})

# 关闭client
client.close()

paddle框架踩坑

相关链接:

简介:

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体。目前,飞桨已凝聚超265万开发者,服务企业10万家,基于飞桨开源深度学习平台产生了34万个模型 。飞桨助力开发者快速实现AI想法,快速上线AI业务。帮助越来越多的行业完成AI赋能,实现产业智能化升级。

开源项目:

1. PaddleGAN

生成对抗网络开发套件—PaddleGAN,为开发者提供经典及前沿的生成对抗网络高性能实现,并支撑开发者快速构建、训练及部署生成对抗网络,以供学术、娱乐及产业应用,包含以下内容:

  • 图片变换
  • 老视频修复
  • 动作迁移
  • 超分辨率
  • 妆容迁移
  • 人脸动漫化
  • 写实人像卡通化
  • 照片动漫化
  • 唇形同步
2. PaddleDetection

飞桨目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的组建、训练、优化及部署等全开发流程。

PaddleDetection模块化地实现了多种主流目标检测算法,提供了丰富的数据增强策略、网络模块组件(如骨干网络)、损失函数等,并集成了模型压缩和跨平台高性能部署能力。

模型库

  • 通用目标检测:
    • 模型库和基线]
    • 移动端模型
    • Anchor Free
    • PP-YOLO模型]
    • 676类目标检测
    • 两阶段实用模型PSS-Det
  • 通用实例分割:
    • SOLOv2
  • 垂类领域
    • 人脸检测
    • 行人检测
    • 车辆检测

应用案例

  • 人像圣诞特效自动生成工具
3. PaddleNLP

PaddleNLP 2.0拥有覆盖多场景的模型库、简洁易用的全流程API与动静统一的高性能分布式训练能力,旨在为飞桨开发者提升文本领域建模效率,并提供基于PaddlePaddle 2.0的NLP领域最佳实践。

模型库及其应用

PaddleNLP模型库整体介绍请参考文档PaddleNLP Model Zoo
模型应用场景介绍请参考PaddleNLP Examples

  • 词向量
  • 词法分析
  • 命名实体识别
  • 语言模型
  • 文本分类
  • 文本生成
  • 语义匹配
  • 文本图学习
  • 通用对话
  • 机器翻译
  • 阅读理解
4. PaddleClas

图像分类套件PaddleClas是飞桨为工业界和学术界所准备的一个图像分类任务的工具集,助力使用者训练出更好的视觉模型和应用落地。

模型库介绍和预训练模型

  • SSLD知识蒸馏系列
  • ResNet及其Vd系列
  • 移动端系列
  • SEResNeXt与Res2Net系列
  • DPN与DenseNet系列
  • HRNet
  • Inception系列
  • EfficientNet与ResNeXt101_wsl系列
  • ResNeSt与RegNet系列
  • HS-ResNet: arxiv文章链接: https://arxiv.org/pdf/2010.07621.pdf。 代码和预训练模型即将开源,敬请期待。
5. DeepSpeech

DeepSpeech2是一个采用PaddlePaddle平台的端到端自动语音识别(ASR)引擎的开源项目,具体原理参考这篇论文Baidu’s Deep Speech 2 paper
我们的愿景是为语音识别在工业应用和学术研究上,提供易于使用、高效和可扩展的工具,包括训练,推理,测试模块,以及 demo 部署。同时,我们还将发布一些预训练好的英语和普通话模型。

6. PaddleOCR

PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。

  • 算法介绍
    • 文本检测
    • 文本识别
  • 模型训练/评估
    • 文本检测
    • 文本识别
    • 方向分类器
7. PaddleSlim

PaddleSlim是一个专注于深度学习模型压缩的工具库,提供剪裁、量化、蒸馏、和模型结构搜索等模型压缩策略,帮助用户快速实现模型的小型化。

8. PaddleRec
  • 源于飞桨生态的搜索推荐模型 一站式开箱即用工具
  • 适合初学者,开发者,研究者的推荐系统全流程解决方案
  • 包含内容理解、匹配、召回、排序、 多任务、重排序等多个任务的完整推荐搜索算法库
9. PaddleSeg

PaddleSeg是基于飞桨PaddlePaddle开发的端到端图像分割开发套件,涵盖了高精度和轻量级等不同方向的大量高质量分割模型。通过模块化的设计,提供了配置化驱动和API调用两种应用方式,帮助开发者更便捷地完成从训练到部署的全流程图像分割应用。

特性

  • 高精度模型:基于百度自研的半监督标签知识蒸馏方案(SSLD)训练得到高精度骨干网络,结合前沿的分割技术,提供了50+的高质量预训练模型,效果优于其他开源实现。
  • 模块化设计:支持15+主流 分割网络 ,结合模块化设计的 数据增强策略 、骨干网络、损失函数 等不同组件,开发者可以基于实际应用场景出发,组装多样化的训练配置,满足不同性能和精度的要求。
  • 高性能:支持多进程异步I/O、多卡并行训练、评估等加速策略,结合飞桨核心框架的显存优化功能,可大幅度减少分割模型的训练开销,让开发者更低成本、更高效地完成图像分割训练。
10. Paddle Graph Learning

一个基于PaddlePaddle的高效易用的图学习框架

11. Parakeet

Parakeet aims to provide a flexible, efficient and state-of-the-art text-to-speech toolkit for the open-source community. It is built on PaddlePaddle Fluid dynamic graph and includes many influential TTS models proposed by Baidu Research and other research groups.

paddle优势&劣势

  • 社区活跃,开源了众多的项目和代码,文档质量不错
  • 有活动提供一些免费的算力
  • 现有论文代码主要以tf和torch居多,以paddle开源的较少

具体尝试

安装:conda install paddlepaddle-gpu==2.1.1 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge

  1. PaddleNLP Embedding API链接
1
2
3
4
5
6
7
8
9
10
11
12
13
import paddle
from paddlenlp.embeddings import TokenEmbedding, list_embedding_name
paddle.set_device("cpu")

# 查看预训练embedding名称:
print(list_embedding_name())
# ['w2v.baidu_encyclopedia.target.word-word.dim300']

# 初始化TokenEmbedding, 预训练embedding没下载时会自动下载并加载数据
token_embedding = TokenEmbedding(embedding_name="w2v.baidu_encyclopedia.target.word-word.dim300")

score = token_embedding.cosine_sim("中国", "美国")
print(score) # 0.49586025