Either run VisualDL/build.sh that builds everything or a target like this
```
mkdir {VisualDL_ROOT}/build
cd build
...
...
@@ -49,12 +50,12 @@ make {TARGET MODULE}
```
## Tests
## 测试
Modification in SDK API or any major function should be adding test cases.
任何关于 SDK API 或其他核心组件的修改都必须提供相应的测试案例。
In {VisualDL_ROOT}/CMakeList.txt, we have a list of test files as target
在 {VisualDL_ROOT}/CMakeList.txt 中,我们有一个测试文件清单
```
add_executable(vl_test
...
...
@@ -70,7 +71,7 @@ add_executable(vl_test
)
```
Add new test cases in corresponding files where code is modified or create new test files. You can make vl_test target and just run vl_test executable for all test cases.
-defines ```LogReader``` and ```LogWriter``` APIs of C++ SDK
-defines feature components such as ```Scalar```, ```Histogram```, ```Image``` and their corresponding component```Reader```
-```sdk.cc``` : implements ```Reader``` to use ```Storage``` layer for reading and writing
#### Information Container
-Currently it just handles logic of sync cycle (when to write)
#### Storage
-Defines log data format as following:
-```Storage``` : main set of data with different modes such as "train" or "test", contain multiple```Tablet```
-```Tablet``` : group a single type of data with ```tag```. One tablet will only represent one data type such as scalar, histogram, image and contains multiple ```Record```. For example one tablet represents a line in scalar chart.
-```Record``` : represent any data structure for any component
-Handles the actual logic to serialize to disk and deserialize from disk
-```storage.proto```: protobuf file that defines the exact interface to be read/write
-定义了 ```LogReader``` 和 ```LogWriter``` 的 C++ SDK 的API
1.The Python/C++ SDK that logs the data during training.
1.The single page client side app that visualized training data.
1.The server (powered on Flask) that reads the logs data and delivers it to the client side app for displaying graphs (scalars/histograms) and embeddings.
For a long time, web developers need to worry about backward compatibility or how to support different versions of browsers.
webpack can help to transpile the Javascript files to the version where a browser can take. The developers don't need to implement version specific code anymore.
It can also help to minify and uglify Javascript files. In a nutshell, webpack helps to manage all of your assets (.js, .css, .gif, .sass, etc) so you don't have to.
To learn more about [webpack](https://webpack.js.org/).
更多Webpack内容请参考[这里](https://webpack.js.org/).
## npm package
npm is the package manager for JavaScript and is a great tool to manage multiple dependencies. To confirm that you have npm installed. Please run this command
Vue allows you to define a self-contained view model in a .vue file and attach view model objects to DOM objects.
Vue 允许开发者自己定义视图模型并保存在 .vue 文件里。然后把视图模型绑定到 DOM 对象上。
To learn more about [Vue](https://vuejs.org/)
更多内容参见 [这里](https://vuejs.org/)
## ECharts
We use ECharts javascript library to render our charts and graphs. ECharts is a leading open source charting library that supports numerous data visualization.