Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
VisualDL
提交
11107dbb
V
VisualDL
项目概览
PaddlePaddle
/
VisualDL
接近 2 年 前同步成功
通知
89
Star
4655
Fork
642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
5
Wiki
分析
仓库
DevOps
项目成员
Pages
V
VisualDL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
5
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
11107dbb
编写于
1月 02, 2018
作者:
S
superjom
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change StorageWriter/Reader to LogWriter/Reader
上级
f0b6db3c
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
48 addition
and
47 deletion
+48
-47
server/visualdl/lib.py
server/visualdl/lib.py
+1
-1
visualdl/logic/pybind.cc
visualdl/logic/pybind.cc
+14
-14
visualdl/logic/sdk.cc
visualdl/logic/sdk.cc
+2
-2
visualdl/logic/sdk.h
visualdl/logic/sdk.h
+8
-8
visualdl/logic/sdk_test.cc
visualdl/logic/sdk_test.cc
+4
-4
visualdl/python/__init__.py
visualdl/python/__init__.py
+1
-0
visualdl/python/storage.py
visualdl/python/storage.py
+13
-13
visualdl/python/test_storage.py
visualdl/python/test_storage.py
+5
-5
未找到文件。
server/visualdl/lib.py
浏览文件 @
11107dbb
...
...
@@ -114,7 +114,7 @@ def get_invididual_image(storage, mode, tag, step_index):
if
__name__
==
'__main__'
:
reader
=
storage
.
Storage
Reader
(
'./tmp/mock'
)
reader
=
storage
.
Log
Reader
(
'./tmp/mock'
)
tags
=
get_image_tags
(
reader
)
tags
=
get_image_tag_steps
(
reader
,
'train'
,
'layer1/layer2/image0/0'
)
...
...
visualdl/logic/pybind.cc
浏览文件 @
11107dbb
...
...
@@ -12,48 +12,48 @@ PYBIND11_PLUGIN(core) {
py
::
module
m
(
"core"
,
"C++ core of VisualDL"
);
#define READER_ADD_SCALAR(T) \
.def("get_scalar_" #T, [](vs::Reader& self, const std::string& tag) { \
.def("get_scalar_" #T, [](vs::
Log
Reader& self, const std::string& tag) { \
auto tablet = self.tablet(tag); \
return vs::components::ScalarReader<T>(std::move(tablet)); \
})
py
::
class_
<
vs
::
Reader
>
(
m
,
"
Reader"
)
py
::
class_
<
vs
::
LogReader
>
(
m
,
"Log
Reader"
)
.
def
(
"__init__"
,
[](
vs
::
Reader
&
instance
,
const
std
::
string
&
dir
)
{
new
(
&
instance
)
vs
::
Reader
(
dir
);
[](
vs
::
Log
Reader
&
instance
,
const
std
::
string
&
dir
)
{
new
(
&
instance
)
vs
::
Log
Reader
(
dir
);
})
.
def
(
"as_mode"
,
&
vs
::
Reader
::
AsMode
)
.
def
(
"modes"
,
[](
vs
::
Reader
&
self
)
{
return
self
.
storage
().
modes
();
})
.
def
(
"tags"
,
&
vs
::
Reader
::
tags
)
.
def
(
"as_mode"
,
&
vs
::
Log
Reader
::
AsMode
)
.
def
(
"modes"
,
[](
vs
::
Log
Reader
&
self
)
{
return
self
.
storage
().
modes
();
})
.
def
(
"tags"
,
&
vs
::
Log
Reader
::
tags
)
// clang-format off
READER_ADD_SCALAR
(
float
)
READER_ADD_SCALAR
(
double
)
READER_ADD_SCALAR
(
int
)
// clang-format on
.
def
(
"get_image"
,
[](
vs
::
Reader
&
self
,
const
std
::
string
&
tag
)
{
.
def
(
"get_image"
,
[](
vs
::
Log
Reader
&
self
,
const
std
::
string
&
tag
)
{
auto
tablet
=
self
.
tablet
(
tag
);
return
vs
::
components
::
ImageReader
(
self
.
mode
(),
tablet
);
});
#undef READER_ADD_SCALAR
#define WRITER_ADD_SCALAR(T) \
.def("new_scalar_" #T, [](vs::Writer& self, const std::string& tag) { \
.def("new_scalar_" #T, [](vs::
Log
Writer& self, const std::string& tag) { \
auto tablet = self.AddTablet(tag); \
return cp::Scalar<T>(tablet); \
})
py
::
class_
<
vs
::
Writer
>
(
m
,
"
Writer"
)
py
::
class_
<
vs
::
LogWriter
>
(
m
,
"Log
Writer"
)
.
def
(
"__init__"
,
[](
vs
::
Writer
&
instance
,
const
std
::
string
&
dir
,
int
sync_cycle
)
{
new
(
&
instance
)
vs
::
Writer
(
dir
,
sync_cycle
);
[](
vs
::
Log
Writer
&
instance
,
const
std
::
string
&
dir
,
int
sync_cycle
)
{
new
(
&
instance
)
vs
::
Log
Writer
(
dir
,
sync_cycle
);
})
.
def
(
"as_mode"
,
&
vs
::
Writer
::
AsMode
)
.
def
(
"as_mode"
,
&
vs
::
Log
Writer
::
AsMode
)
// clang-format off
WRITER_ADD_SCALAR
(
float
)
WRITER_ADD_SCALAR
(
double
)
WRITER_ADD_SCALAR
(
int
)
// clang-format on
.
def
(
"new_image"
,
[](
vs
::
Writer
&
self
,
[](
vs
::
Log
Writer
&
self
,
const
std
::
string
&
tag
,
int
num_samples
,
int
step_cycle
)
{
...
...
visualdl/logic/sdk.cc
浏览文件 @
11107dbb
...
...
@@ -139,8 +139,8 @@ void Image::SetSample(int index,
std
::
string
ImageReader
::
caption
()
{
CHECK_EQ
(
reader_
.
captions
().
size
(),
1
);
auto
caption
=
reader_
.
captions
().
front
();
if
(
Reader
::
TagMatchMode
(
caption
,
mode_
))
{
return
Reader
::
GenReadableTag
(
mode_
,
caption
);
if
(
Log
Reader
::
TagMatchMode
(
caption
,
mode_
))
{
return
Log
Reader
::
GenReadableTag
(
mode_
,
caption
);
}
string
::
TagDecode
(
caption
);
return
caption
;
...
...
visualdl/logic/sdk.h
浏览文件 @
11107dbb
...
...
@@ -8,19 +8,19 @@ namespace visualdl {
const
static
std
::
string
kDefaultMode
{
"default"
};
class
Writer
{
class
Log
Writer
{
public:
Writer
(
const
std
::
string
&
dir
,
int
sync_cycle
)
{
Log
Writer
(
const
std
::
string
&
dir
,
int
sync_cycle
)
{
storage_
.
SetDir
(
dir
);
storage_
.
meta
.
cycle
=
sync_cycle
;
}
Writer
(
const
Writer
&
other
)
{
LogWriter
(
const
Log
Writer
&
other
)
{
storage_
=
other
.
storage_
;
mode_
=
other
.
mode_
;
}
Writer
AsMode
(
const
std
::
string
&
mode
)
{
Writer
writer
=
*
this
;
Log
Writer
AsMode
(
const
std
::
string
&
mode
)
{
Log
Writer
writer
=
*
this
;
storage_
.
AddMode
(
mode
);
writer
.
mode_
=
mode
;
return
writer
;
...
...
@@ -43,11 +43,11 @@ private:
std
::
string
mode_
{
kDefaultMode
};
};
class
Reader
{
class
Log
Reader
{
public:
Reader
(
const
std
::
string
&
dir
)
:
reader_
(
dir
)
{}
Log
Reader
(
const
std
::
string
&
dir
)
:
reader_
(
dir
)
{}
Reader
AsMode
(
const
std
::
string
&
mode
)
{
Log
Reader
AsMode
(
const
std
::
string
&
mode
)
{
auto
tmp
=
*
this
;
tmp
.
mode_
=
mode
;
return
tmp
;
...
...
visualdl/logic/sdk_test.cc
浏览文件 @
11107dbb
...
...
@@ -8,7 +8,7 @@ namespace visualdl {
TEST
(
Scalar
,
write
)
{
const
auto
dir
=
"./tmp/sdk_test"
;
Writer
writer__
(
dir
,
1
);
Log
Writer
writer__
(
dir
,
1
);
auto
writer
=
writer__
.
AsMode
(
"train"
);
// write disk every time
auto
tablet
=
writer
.
AddTablet
(
"scalar0"
);
...
...
@@ -19,7 +19,7 @@ TEST(Scalar, write) {
scalar1
.
SetCaption
(
"customized caption"
);
// read from disk
Reader
reader_
(
dir
);
Log
Reader
reader_
(
dir
);
auto
reader
=
reader_
.
AsMode
(
"train"
);
auto
tablet_reader
=
reader
.
tablet
(
"scalar0"
);
auto
scalar_reader
=
components
::
ScalarReader
<
int
>
(
std
::
move
(
tablet_reader
));
...
...
@@ -44,7 +44,7 @@ TEST(Scalar, write) {
TEST
(
Image
,
test
)
{
const
auto
dir
=
"./tmp/sdk_test.image"
;
Writer
writer__
(
dir
,
4
);
Log
Writer
writer__
(
dir
,
4
);
auto
writer
=
writer__
.
AsMode
(
"train"
);
auto
tablet
=
writer
.
AddTablet
(
"image0"
);
...
...
@@ -71,7 +71,7 @@ TEST(Image, test) {
LOG
(
INFO
)
<<
"read images"
;
// read it
Reader
reader__
(
dir
);
Log
Reader
reader__
(
dir
);
auto
reader
=
reader__
.
AsMode
(
"train"
);
auto
tablet2read
=
reader
.
tablet
(
"image0"
);
components
::
ImageReader
image2read
(
"train"
,
tablet2read
);
...
...
visualdl/python/__init__.py
浏览文件 @
11107dbb
from
storage
import
*
visualdl/python/storage.py
浏览文件 @
11107dbb
...
...
@@ -7,20 +7,20 @@ import core
dtypes
=
(
"float"
,
"double"
,
"int32"
,
"int64"
)
class
Storage
Reader
(
object
):
class
Log
Reader
(
object
):
cur_mode
=
None
def
__init__
(
self
,
dir
,
reader
=
None
):
self
.
dir
=
dir
self
.
reader
=
reader
if
reader
else
core
.
Reader
(
dir
)
self
.
reader
=
reader
if
reader
else
core
.
Log
Reader
(
dir
)
def
mode
(
self
,
mode
):
Storage
Reader
.
cur_mode
=
self
.
as_mode
(
mode
)
return
Storage
Reader
.
cur_mode
Log
Reader
.
cur_mode
=
self
.
as_mode
(
mode
)
return
Log
Reader
.
cur_mode
def
as_mode
(
self
,
mode
):
tmp
=
Storage
Reader
(
dir
,
self
.
reader
.
as_mode
(
mode
))
tmp
=
Log
Reader
(
dir
,
self
.
reader
.
as_mode
(
mode
))
return
tmp
def
modes
(
self
):
...
...
@@ -41,28 +41,28 @@ class StorageReader(object):
return
self
.
reader
.
get_image
(
tag
)
def
__enter__
(
self
):
return
Storage
Reader
.
cur_mode
return
Log
Reader
.
cur_mode
def
__exit__
(
self
,
type
,
value
,
traceback
):
pass
class
Storage
Writer
(
object
):
class
Log
Writer
(
object
):
cur_mode
=
None
def
__init__
(
self
,
dir
,
sync_cycle
,
writer
=
None
):
self
.
dir
=
dir
self
.
sync_cycle
=
sync_cycle
self
.
writer
=
writer
if
writer
else
core
.
Writer
(
dir
,
sync_cycle
)
self
.
writer
=
writer
if
writer
else
core
.
Log
Writer
(
dir
,
sync_cycle
)
def
mode
(
self
,
mode
):
Storage
Writer
.
cur_mode
=
self
.
as_mode
(
mode
)
return
Storage
Writer
.
cur_mode
Log
Writer
.
cur_mode
=
self
.
as_mode
(
mode
)
return
Log
Writer
.
cur_mode
def
as_mode
(
self
,
mode
):
StorageWriter
.
cur_mode
=
Storage
Writer
(
self
.
dir
,
self
.
sync_cycle
,
self
.
writer
.
as_mode
(
mode
))
return
Storage
Writer
.
cur_mode
LogWriter
.
cur_mode
=
Log
Writer
(
self
.
dir
,
self
.
sync_cycle
,
self
.
writer
.
as_mode
(
mode
))
return
Log
Writer
.
cur_mode
def
scalar
(
self
,
tag
,
type
=
'float'
):
type2scalar
=
{
...
...
@@ -76,7 +76,7 @@ class StorageWriter(object):
return
self
.
writer
.
new_image
(
tag
,
num_samples
,
step_cycle
)
def
__enter__
(
self
):
return
Storage
Writer
.
cur_mode
return
Log
Writer
.
cur_mode
def
__exit__
(
self
,
type
,
value
,
traceback
):
pass
visualdl/python/test_storage.py
浏览文件 @
11107dbb
...
...
@@ -11,7 +11,7 @@ import storage
class
StorageTest
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
dir
=
"./tmp/storage_test"
self
.
writer
=
storage
.
Storage
Writer
(
self
.
writer
=
storage
.
Log
Writer
(
self
.
dir
,
sync_cycle
=
1
).
as_mode
(
"train"
)
def
test_scalar
(
self
):
...
...
@@ -22,7 +22,7 @@ class StorageTest(unittest.TestCase):
scalar
.
add_record
(
i
,
float
(
i
))
print
'test read'
self
.
reader
=
storage
.
Storage
Reader
(
self
.
dir
)
self
.
reader
=
storage
.
Log
Reader
(
self
.
dir
)
with
self
.
reader
.
mode
(
"train"
)
as
reader
:
scalar
=
reader
.
scalar
(
"model/scalar/min"
)
self
.
assertEqual
(
scalar
.
caption
(),
"train"
)
...
...
@@ -50,7 +50,7 @@ class StorageTest(unittest.TestCase):
image_writer
.
set_sample
(
index
,
shape
,
list
(
data
))
image_writer
.
finish_sampling
()
self
.
reader
=
storage
.
Storage
Reader
(
self
.
dir
)
self
.
reader
=
storage
.
Log
Reader
(
self
.
dir
)
with
self
.
reader
.
mode
(
"train"
)
as
reader
:
image_reader
=
reader
.
image
(
tag
)
self
.
assertEqual
(
image_reader
.
caption
(),
tag
)
...
...
@@ -77,7 +77,7 @@ class StorageTest(unittest.TestCase):
shape
=
[
image
.
size
[
1
],
image
.
size
[
0
],
3
]
origin_data
=
np
.
array
(
image
.
getdata
()).
flatten
()
self
.
reader
=
storage
.
Storage
Reader
(
self
.
dir
)
self
.
reader
=
storage
.
Log
Reader
(
self
.
dir
)
with
self
.
reader
.
mode
(
"train"
)
as
reader
:
image_writer
.
start_sampling
()
...
...
@@ -110,7 +110,7 @@ class StorageTest(unittest.TestCase):
for
i
in
range
(
10
):
scalar
.
add_record
(
i
,
float
(
i
))
self
.
reader
=
storage
.
Storage
Reader
(
self
.
dir
)
self
.
reader
=
storage
.
Log
Reader
(
self
.
dir
)
with
self
.
reader
.
mode
(
"train"
)
as
reader
:
scalar
=
reader
.
scalar
(
"model/scalar/average"
)
self
.
assertEqual
(
scalar
.
caption
(),
"train"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录