Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
VisualDL
提交
5ff9b7b3
V
VisualDL
项目概览
PaddlePaddle
/
VisualDL
1 年多 前同步成功
通知
88
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看板
未验证
提交
5ff9b7b3
编写于
8月 26, 2020
作者:
走神的阿圆
提交者:
GitHub
8月 26, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add `file_name` in LogWriter() for rewriting. (#764)
* add `file_name` in LogWriter(0 for rewriting. * fix reviews
上级
c4c15bae
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
13 deletion
+45
-13
README.md
README.md
+2
-0
visualdl/io/bfile.py
visualdl/io/bfile.py
+13
-9
visualdl/writer/record_writer.py
visualdl/writer/record_writer.py
+22
-3
visualdl/writer/writer.py
visualdl/writer/writer.py
+8
-1
未找到文件。
README.md
浏览文件 @
5ff9b7b3
...
...
@@ -96,6 +96,7 @@ class LogWriter(logdir=None,
filename_suffix
=
''
,
write_to_disk
=
True
,
display_name
=
''
,
file_name
=
''
,
**
kwargs
)
```
...
...
@@ -110,6 +111,7 @@ class LogWriter(logdir=None,
| filename_suffix | string | 为默认的日志文件名添加后缀 |
| write_to_disk | boolean | 是否写入到磁盘 |
| display_name | string | 在面板中替换实际显示的
`logdir`
,当日志所在路径过长或想隐藏日志所在路径时可指定此参数 |
| file_name | string | 指定写入的日志文件名,如果指定的文件名已经存在,则将日志续写在此文件中,文件名必须包括
`vdlrecords`
|
#### 示例
...
...
visualdl/io/bfile.py
浏览文件 @
5ff9b7b3
...
...
@@ -130,7 +130,8 @@ class LocalFileSystem(object):
self
.
_write
(
filename
,
file_content
,
"ab"
if
binary_mode
else
"a"
)
def
write
(
self
,
filename
,
file_content
,
binary_mode
=
False
):
self
.
_write
(
filename
,
file_content
,
"wb"
if
binary_mode
else
"w"
)
self
.
_write
(
filename
,
file_content
,
"ab"
if
binary_mode
else
"a"
)
# self._write(filename, file_content, "wb" if binary_mode else "w")
def
walk
(
self
,
dir
):
if
'posix'
==
os
.
name
:
...
...
@@ -187,7 +188,8 @@ class HDFileSystem(object):
self
.
cli
.
write
(
hdfs_path
=
filename
[
7
:],
data
=
file_content
,
append
=
True
)
def
write
(
self
,
filename
,
file_content
,
binary_mode
=
False
):
self
.
cli
.
write
(
hdfs_path
=
filename
[
7
:],
data
=
file_content
)
self
.
cli
.
write
(
hdfs_path
=
filename
[
7
:],
data
=
file_content
,
append
=
True
)
# self.cli.write(hdfs_path=filename[7:], data=file_content)
def
walk
(
self
,
dir
):
walks
=
self
.
cli
.
walk
(
hdfs_path
=
dir
[
7
:])
...
...
@@ -326,13 +328,15 @@ class BosFileSystem(object):
self
.
_start_append_time
=
time
.
time
()
def
write
(
self
,
filename
,
file_content
,
binary_mode
=
False
):
bucket_name
,
object_key
=
BosFileSystem
.
_get_object_info
(
filename
)
self
.
bos_client
.
append_object
(
bucket_name
=
bucket_name
,
key
=
object_key
,
data
=
file_content
,
content_md5
=
content_md5
(
file_content
),
content_length
=
len
(
file_content
))
self
.
append
(
filename
,
file_content
,
binary_mode
=
False
)
# bucket_name, object_key = BosFileSystem._get_object_info(filename)
#
# self.bos_client.append_object(bucket_name=bucket_name,
# key=object_key,
# data=file_content,
# content_md5=content_md5(file_content),
# content_length=len(file_content))
def
walk
(
self
,
dir
):
class
WalkGenerator
():
...
...
visualdl/writer/record_writer.py
浏览文件 @
5ff9b7b3
...
...
@@ -74,12 +74,28 @@ class RecordFileWriter(object):
file.
"""
def
__init__
(
self
,
logdir
,
max_queue_size
=
10
,
flush_secs
=
120
,
filename_suffix
=
''
):
filename_suffix
=
''
,
filename
=
''
):
self
.
_logdir
=
logdir
if
not
bfile
.
exists
(
logdir
):
bfile
.
makedirs
(
logdir
)
self
.
_file_name
=
bfile
.
join
(
logdir
,
"vdlrecords.%010d.log%s"
%
(
time
.
time
(),
filename_suffix
))
if
filename
:
if
'vdlrecords'
in
filename
:
self
.
_file_name
=
bfile
.
join
(
logdir
,
filename
)
if
bfile
.
exists
(
self
.
_file_name
):
print
(
'`{}` is exists, VisualDL will add logs to it.'
.
format
(
self
.
_file_name
))
else
:
fn
=
"vdlrecords.%010d.log%s"
%
(
time
.
time
(),
filename_suffix
)
self
.
_file_name
=
bfile
.
join
(
logdir
,
fn
)
print
(
'Since the log filename should contain `vdlrecords`, the filename is invalid and `{}` will replace `{}`'
.
format
(
fn
,
filename
))
else
:
self
.
_file_name
=
bfile
.
join
(
logdir
,
"vdlrecords.%010d.log%s"
%
(
time
.
time
(),
filename_suffix
))
self
.
_general_file_writer
=
bfile
.
BFile
(
self
.
_file_name
,
"wb"
)
self
.
_async_writer
=
_AsyncWriter
(
RecordWriter
(
self
.
_general_file_writer
),
max_queue_size
,
flush_secs
)
...
...
@@ -91,6 +107,9 @@ class RecordFileWriter(object):
def
get_logdir
(
self
):
return
self
.
_logdir
def
get_filename
(
self
):
return
self
.
_file_name
def
add_record
(
self
,
record
):
if
not
isinstance
(
record
,
record_pb2
.
Record
):
raise
TypeError
(
"Expected an record_pb2.Record proto, "
...
...
visualdl/writer/writer.py
浏览文件 @
5ff9b7b3
...
...
@@ -67,6 +67,7 @@ class LogWriter(object):
filename_suffix
=
''
,
write_to_disk
=
True
,
display_name
=
''
,
file_name
=
''
,
**
kwargs
):
"""Create a instance of class `LogWriter` and create a vdl log file with
given args.
...
...
@@ -94,6 +95,7 @@ class LogWriter(object):
self
.
_filename_suffix
=
filename_suffix
self
.
_write_to_disk
=
write_to_disk
self
.
kwargs
=
kwargs
self
.
_file_name
=
file_name
self
.
_file_writer
=
None
self
.
_all_writers
=
{}
...
...
@@ -116,10 +118,15 @@ class LogWriter(object):
logdir
=
self
.
_logdir
,
max_queue_size
=
self
.
_max_queue
,
flush_secs
=
self
.
_flush_secs
,
filename_suffix
=
self
.
_filename_suffix
)
filename_suffix
=
self
.
_filename_suffix
,
filename
=
self
.
_file_name
)
self
.
_all_writers
.
update
({
self
.
_logdir
:
self
.
_file_writer
})
return
self
.
_file_writer
@
property
def
file_name
(
self
):
return
self
.
_file_writer
.
get_filename
()
def
add_meta
(
self
,
tag
=
'meta_data_tag'
,
display_name
=
''
,
step
=
0
,
walltime
=
None
):
"""Add a meta to vdl record file.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录