介绍Sacred+Ominiboard方案
主要参考SHEN’s BLOG
Sacred的工具,用于记录实验的配置、组织、日志和复现
使用mongoDB管理后端数据,利用omniboard实现前端可视化:
各部分库都安装最新的版本,具体如下:
MongoDB 4.2.7
omniboard 2.12.1
npm v12.18.0
sacred 0.8.0
# 主角
pip install sacred
# 用于数据库连接
pip install numpy pymongo
在ubuntu上的MongoDB安装可以参考Install MongoDB Community Edition on Ubuntu,
1.Import the public key used by the package management system.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
# The operation should respond with an OK.
sudo apt-get install gnupg
# Once installed, retry importing the key:
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
2.Create a list file for MongoDB
Create the list file /etc/apt/sources.list.d/mongodb-org-4.2.list
for your version of Ubuntu.
The following instruction is for Ubuntu 18.04 (Bionic). For Ubuntu 16.04 (Xenial), click on the appropriate tab.
Create the /etc/apt/sources.list.d/mongodb-org-4.2.list
file for Ubuntu 18.04 (Bionic):
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
3.Reload local package database
sudo apt-get update
4.Install the MongoDB packages.
You can install either the latest stable version of MongoDB or a specific version of MongoDB.
sudo apt-get install -y mongodb-org
# Optional. Although you can specify any available version of MongoDB, apt-get will upgrade the packages when a newer version becomes available. To prevent unintended upgrades, you can pin the package at the currently installed version:
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
# 启动
sudo service mongod start
# 停止
sudo service mongod stop
# 重启
sudo service mongod restart
# 进入MongoDB
mongo
x创建一个名为sacred的数据库,用作sacred工具的后端存储:
# 进入MongoDB
mongo
# 创建sacred数据库。use命令切换数据库,没有该数据就会自动创建一个
use sacred
这里的数据库名称,与代码中
sacred.observers import MongoObserver
ex.observers.append(MongoObserver(url="localhost:27017", db_name=""))
设置的db_name应该一致,同时,url设置决定Mongo的访问端口。
这里采用npm
方式进行安装
Note: Omniboard requires Node.js v8 or higher installed in your system.
Step1:安装Node.js,从官网下载相应版本
# 1. 解压到 /usr/local/lib/nodejs, 注意VERSION是版本号,此处是v12.18.0
VERSION=v12.18.0
DISTRO=linux-x64
sudo mkdir /usr/local/lib/nodejs
sudo tar -xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs
sudo mv /usr/local/lib/nodejs/node-$VERSION-$DISTRO /usr/local/lib/nodejs/node-$VERSION
# 2. 设置环境变量,打开 ~/.profile, 追加如下信息
# Nodejs
export NODEJS_HOME=/usr/local/lib/nodejs/node-$VERSION/bin
export PATH=$NODEJS_HOME:$PATH
# 3. 刷新
. ~/.profile
# 4. 测试安装版本信息
node -v
npm version
npx -v
# 创建sudo链接
sudo ln -s /usr/local/lib/nodejs/node-$VERSION/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/nodejs/node-$VERSION/bin/npm /usr/bin/npm
sudo ln -s /usr/local/lib/nodejs/node-$VERSION/bin/npx /usr/bin/npx
Step2: npm 安装omniboard
npm install -g omniboard
Step3:开启omniboard服务。平时也是用该命令开启omniboard可视化前端
# 开启用法
omniboard -m hostname:port:database
# 默认情况下如下,其中27017是MongoDB的端口
omniboard -m localhost:27017:sacred
第四步,打开 http://localhost:9000 来查看前端,并进行管理。
解决办法:
npm使用最新版本。
重新执行
npm install -g omniboard
在SHEN’s BLOG中有使用yunjey的一个pytorch教程作为演示,代码是演示用pytorch实现基于CNN的MINIST手写数字识别。
更多用法请去看Sacred 文档:Welcome to Sacred’s documentation!。内容超丰富,功能超级多。