Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle
提交
45177aa2
P
Paddle
项目概览
PaddlePaddle
/
Paddle
大约 1 年 前同步成功
通知
2298
Star
20931
Fork
5422
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1423
列表
看板
标记
里程碑
合并请求
543
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1,423
Issue
1,423
列表
看板
标记
里程碑
合并请求
543
合并请求
543
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
45177aa2
编写于
12月 05, 2018
作者:
D
dongdaxiang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'guru4elephnat_for_pslib' into develop
上级
419506f5
06213b79
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
177 addition
and
92 deletion
+177
-92
python/paddle/fluid/async_executor.py
python/paddle/fluid/async_executor.py
+7
-2
python/paddle/fluid/distribute_lookup_table.py
python/paddle/fluid/distribute_lookup_table.py
+20
-0
python/paddle/fluid/distributed/downpour.py
python/paddle/fluid/distributed/downpour.py
+42
-10
python/paddle/fluid/distributed/helper.py
python/paddle/fluid/distributed/helper.py
+24
-0
python/paddle/fluid/distributed/node.py
python/paddle/fluid/distributed/node.py
+21
-25
python/paddle/fluid/distributed/ps_pb2.py
python/paddle/fluid/distributed/ps_pb2.py
+63
-55
未找到文件。
python/paddle/fluid/async_executor.py
浏览文件 @
45177aa2
...
...
@@ -150,8 +150,13 @@ class AsyncExecutor(object):
data_feed
.
desc
(),
filelist
,
thread_num
,
fetch_var_names
,
debug
)
def
config_ps
(
self
,
dist_desc
,
host_sign_list
,
node_num
,
index
):
self
.
executor
.
config_pslib
(
dist_desc
,
host_sign_list
,
node_num
,
index
)
def
config_distributed_nodes
(
self
,
dist_opt
):
# get total rank
# get rank index
# get iplists
# get hadoop info
return
def
start_server
(
self
):
self
.
executor
.
start_server
()
...
...
python/paddle/fluid/distribute_lookup_table.py
浏览文件 @
45177aa2
...
...
@@ -15,6 +15,26 @@
LOOKUP_TABLE_TYPE
=
"lookup_table"
def
find_distributed_lookup_table_inputs
(
program
,
table_name
):
local_vars
=
program
.
current_block
().
vars
inputs
=
[]
for
op
in
program
.
global_block
().
ops
:
if
op
.
type
==
LOOKUP_TABLE_TYPE
:
if
table_name
==
op
.
input
(
"W"
)[
0
]:
inputs
.
extend
(
[
local_vars
[
name
]
for
name
in
op
.
input
(
"Ids"
)])
return
inputs
def
find_distributed_lookup_table_outputs
(
program
,
table_name
):
local_vars
=
program
.
current_block
().
vars
outputs
=
[]
for
op
in
program
.
global_block
().
ops
:
if
op
.
type
==
LOOKUP_TABLE_TYPE
:
if
table_name
==
op
.
input
(
"W"
)[
0
]:
outputs
.
extend
(
[
local_vars
[
name
]
for
name
in
op
.
output
(
"Out"
)])
return
outputs
def
find_distributed_lookup_table
(
program
):
"""
Find distribute lookup table in program.
...
...
python/paddle/fluid/distributed/downpour.py
浏览文件 @
45177aa2
...
...
@@ -3,30 +3,62 @@ from .node import DownpourWorker
from
..backward
import
append_backward
import
ps_pb2
as
pslib
from
paddle.fluid.distribute_lookup_table
import
find_distributed_lookup_table
from
paddle.fluid.distribute_lookup_table
import
find_distributed_lookup_table_inputs
from
paddle.fluid.distribute_lookup_table
import
find_distributed_lookup_table_outputs
from
google.protobuf
import
text_format
class
DownpourSGD
(
object
):
"""
Distributed optimizer of downpour stochastic gradient descent
Standard implementation of Google's Downpour SGD
in Large Scale Distributed Deep Networks
Args:
learning_rate (float): the learning rate used to update parameters.
\
Can be a float value
Examples:
.. code-block:: python
downpour_sgd = fluid.distributed.DownpourSGD(learning_rate=0.2)
downpour_sgd.minimize(cost)
"""
def
__init__
(
self
,
learning_rate
=
0.001
,
window
=
1
):
# todo(guru4elephant): if optimizer is not None, will warning here
# todo(guru4elephant): add more optimizers here as argument
# todo(guru4elephant): make learning_rate as a variable
self
.
learning_rate_
=
learning_rate
self
.
window_
=
window
self
.
type
=
"downpour"
def
minimize
(
self
,
loss
,
startup_program
=
None
,
parameter_list
=
None
,
no_grad_set
=
None
,
prefetch_slots
=
None
,
prefetch_slots_emb
=
None
):
params_grads
=
sorted
(
append_backward
(
loss
),
key
=
lambda
x
:
x
[
0
].
name
)
parameter_list
=
None
,
no_grad_set
=
None
):
params_grads
=
sorted
(
append_backward
(
loss
,
parameter_list
,
no_grad_set
),
key
=
lambda
x
:
x
[
0
].
name
)
table_name
=
find_distributed_lookup_table
(
loss
.
block
.
program
)
prefetch_slots
=
find_distributed_lookup_table_inputs
(
loss
.
block
.
program
,
table_name
)
prefetch_slots_emb
=
find_distributed_lookup_table_outputs
(
loss
.
block
.
program
,
table_name
)
server
=
DownpourServer
()
# window is communication strategy
worker
=
DownpourWorker
(
self
.
window_
)
server
.
add_sparse_table
(
0
,
learning_rate
,
# Todo(guru4elephant): support multiple tables definitions
# currently support one big sparse table
sparse_table_index
=
0
# currently merge all dense parameters into one dense table
dense_table_index
=
1
server
.
add_sparse_table
(
sparse_table_index
,
self
.
learning_rate_
,
prefetch_slots
,
prefetch_slots_emb
)
server
.
add_dense_table
(
1
,
learning_rate
,
params
,
grads
)
worker
.
add_sparse_table
(
0
,
learning_rate
,
server
.
add_dense_table
(
dense_table_index
,
self
.
learning_rate_
,
params_grads
[
0
],
params_grads
[
1
])
worker
.
add_sparse_table
(
sparse_table_index
,
self
.
learning_rate_
,
prefetch_slots
,
prefetch_slots_emb
)
worker
.
add_dense_table
(
1
,
learning_rate
,
params
,
grads
)
worker
.
add_dense_table
(
dense_table_index
,
self
.
learning_rate_
,
params_grads
[
0
],
params_grads
[
1
])
ps_param
=
pslib
.
PSParameter
()
ps_param
.
server_param
.
CopyFrom
(
server
.
get_desc
())
#ps_param.worker_param.CopyFrom(worker.get_desc())
ps_param
.
worker_param
.
CopyFrom
(
worker
.
get_desc
())
# Todo(guru4elephant): figure out how to support more sparse parameters
# currently only support lookup_table
worker_skipped_ops
=
[
"lookup_table"
,
"lookup_table_grad"
]
ps_param_str
=
text_format
.
MessageToString
(
ps_param
)
return
[
ps_param_str
,
worker_skipped_ops
]
python/paddle/fluid/distributed/helper.py
浏览文件 @
45177aa2
from
mpi4py
import
MPI
class
FileSystem
(
object
):
def
__init__
(
self
,
fs_type
=
"afs"
,
uri
=
"afs://tianqi.afs.baidu.com:9902"
,
user
=
None
,
passwd
=
None
,
hadoop_bin
=
""
,
afs_conf
=
None
):
assert
user
not
None
assert
passwd
not
None
assert
hadoop_bin
not
None
fs_client
=
pslib
.
FsClientParameter
()
if
fs_type
==
"afs"
:
fs_client
.
fs_type
=
pslib
.
FsApiType
.
AFS
else
:
fs_client
.
fs_type
=
pslib
.
FsApiType
.
HDFS
fs_client
.
uri
=
uri
fs_client
.
user
=
user
fs_client
.
passwd
=
passwd
fs_client
.
buffer_size
=
0
fs_client
.
afs_conf
=
afs_conf
if
not
afs_conf
else
""
class
MPIHelper
(
object
):
def
__init__
(
self
):
self
.
comm
=
MPI
.
COMM_WORLD
...
...
@@ -18,3 +40,5 @@ class MPIHelper(object):
def
get_hostname
(
self
):
import
socket
return
socket
.
gethostname
()
python/paddle/fluid/distributed/node.py
浏览文件 @
45177aa2
...
...
@@ -12,29 +12,29 @@ class Worker(object):
class
DownpourServer
(
Server
):
def
__init__
(
self
):
#self.server_ = pslib.ServerParameter().downpour_server_param
self
.
server_
=
pslib
.
ServerParameter
()
def
add_sparse_table
(
self
,
table_id
,
learning_rate
,
slot_key
,
slot_value_var
,
slot_grad_var
):
#table = self.server_.downpour_table_param.add()
slot_key_vars
,
slot_value_var
):
table
=
self
.
server_
.
downpour_server_param
.
downpour_table_param
.
add
()
table
.
table_id
=
table_id
table
.
type
=
PS_SPARSE_TABLE
table
.
type
=
pslib
.
PS_SPARSE_TABLE
table
.
accessor
.
accessor_class
=
"DownpourFeatureValueAccessor"
table
.
accessor
.
dense_sgd_param
.
adam
.
learning_rate
=
learning_rate
table
.
accessor
.
fea_dim
=
slot_value_var
[
0
].
shape
[
1
]
table
.
accessor
.
fea_dim
=
abs
(
reduce
(
lambda
x
,
y
:
x
*
y
,
slot_value_var
[
0
].
shape
,
1
))
def
add_dense_table
(
self
,
table_id
,
learning_rate
,
param_var
,
grad_var
):
#table = self.server_.downpour_table_param.add()
table
=
self
.
server_
.
downpour_server_param
.
downpour_table_param
.
add
()
table
.
table_id
=
table_id
table
.
type
=
PS_DENSE_TABLE
table
.
type
=
pslib
.
PS_DENSE_TABLE
table
.
accessor
.
accessor_class
=
"DownpourDenseValueAccessor"
table
.
accessor
.
sparse_sgd_param
.
learning_rate
=
learning_rate
table
.
accessor
.
fea_dim
=
1
#table.accessor.fea_dim = reduce(lambda x, y: x.shape, 1 for x in param_var)
fea_dim
=
0
for
param
in
param_var
:
fea_dim
+=
reduce
(
lambda
x
,
y
:
x
*
y
,
param
.
shape
,
1
)
table
.
accessor
.
fea_dim
=
fea_dim
def
get_desc
(
self
):
return
self
.
server_
...
...
@@ -43,28 +43,24 @@ class DownpourServer(Server):
class
DownpourWorker
(
Worker
):
def
__init__
(
self
,
window
):
self
.
window
=
window
#self.worker_ = pslib.WorkerParameter().downpour_worker_param
#self.worker_ = pslib.WorkerParameter()
self
.
worker_
=
pslib
.
DownpourTrainerParameter
()
#self.worker_.pull_dense_per_batch = window
#self.worker_.push_dense_per_batch = window
#self.worker_.downpour_worker_param.pull_dense_per_batch = window
#self.worker_.downpour_worker_param.push_dense_per_batch = window
self
.
worker_
.
pull_dense_per_batch
=
window
self
.
worker_
.
push_dense_per_batch
=
window
print
(
self
.
worker_
)
def
add_sparse_table
(
self
,
table_id
,
slot_keys
,
slot_value_vars
,
slot_grad_vars
):
#table = self.worker_.sparse_table.add()
table
=
self
.
worker_
.
downpour_worker_param
.
sparse_table
.
add
()
def
add_sparse_table
(
self
,
table_id
,
learning_rate
,
slot_key_vars
,
slot_value_vars
):
table
=
self
.
worker_
.
sparse_table
.
add
()
table
.
table_id
=
table_id
table
.
slot
.
extend
(
slot_keys
)
self
.
worker_
.
extend
([
grad
.
name
for
grad
in
slot_grad_vars
])
table
.
slot_key
.
extend
(
[
var
.
name
for
var
in
slot_key_vars
])
table
.
slot_value
.
extend
(
[
var
.
name
for
var
in
slot_value_vars
])
table
.
slot_gradient
.
extend
(
[
var
.
name
+
"@GRAD"
for
var
in
slot_value_vars
])
def
add_dense_table
(
self
,
table_id
,
param_vars
,
grad_vars
):
#table = self.worker_.dense_table.add()
table
=
self
.
worker_
.
d
ownpour_worker_param
.
d
ense_table
.
add
()
def
add_dense_table
(
self
,
table_id
,
learning_rate
,
param_vars
,
grad_vars
):
table
=
self
.
worker_
.
dense_table
.
add
()
table
.
table_id
=
table_id
table
.
dense_variable_name
.
extend
([
p
.
name
for
p
in
param_vars
])
table
.
dense_gradient_variable_name
.
extend
([
g
.
name
for
g
in
grad_vars
])
...
...
python/paddle/fluid/distributed/ps_pb2.py
浏览文件 @
45177aa2
...
...
@@ -20,7 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
name
=
'ps.proto'
,
package
=
'paddle'
,
syntax
=
'proto2'
,
serialized_pb
=
_b
(
'
\n\x08
ps.proto
\x12\x06
paddle
\"\x
e4\x01\n\x0b
PSParameter
\x12\x14\n\x0c
worker_class
\x18\x01
\x01
(
\t\x12\x14\n\x0c
server_class
\x18\x02
\x01
(
\t\x12\x16\n\x0e
instance_class
\x18\x03
\x01
(
\t\x12
-
\n\x0c
worker_param
\x18\x65
\x01
(
\x0b\x32\x17
.paddle.WorkerParameter
\x12
-
\n\x0c
server_param
\x18\x66
\x01
(
\x0b\x32\x17
.paddle.ServerParameter
\x12\x33\n\x0f\x66
s_client_param
\x18\xf5\x03
\x01
(
\x0b\x32\x19
.paddle.FsClientParameter
\"
Q
\n\x0f
WorkerParameter
\x12
>
\n\x15\x64
ownpour_worker_param
\x18\x01
\x01
(
\x0b\x32\x1f
.paddle.DownpourWorkerParameter
\"
Q
\n\x0f
ServerParameter
\x12
>
\n\x15\x64
ownpour_server_param
\x18\x01
\x01
(
\x0b\x32\x1f
.paddle.DownpourServerParameter
\"
O
\n\x17\x44
ownpourWorkerParameter
\x12\x34\n\x14\x64
ownpour_table_param
\x18\x01
\x03
(
\x0b\x32\x16
.paddle.TableParameter
\"\xbc\x01\n\x18\x44
ownpourTrainerParameter
\x12\x30\n\x0b\x64\x65
nse_table
\x18\x02
\x03
(
\x0b\x32\x1b
.paddle.DenseTableParameter
\x12\x32\n\x0c
sparse_table
\x18\x03
\x03
(
\x0b\x32\x1c
.paddle.SparseTableParameter
\x12\x1c\n\x14
pull_dense_per_batch
\x18\x04
\x01
(
\x05\x12\x1c\n\x14
push_dense_per_batch
\x18\x05
\x01
(
\x05\"
{
\n\x13\x44\x65
nseTableParameter
\x12\x10\n\x08
table_id
\x18\x01
\x01
(
\x05\x12\x1b\n\x13\x64\x65
nse_variable_name
\x18\x02
\x03
(
\t\x12
$
\n\x1c\x64\x65
nse_gradient_variable_name
\x18\x03
\x03
(
\t\x12\x0f\n\x07\x66\x65\x61
_dim
\x18\x04
\x01
(
\x05\"
z
\n\x14
SparseTableParameter
\x12\x10\n\x08
table_id
\x18\x01
\x01
(
\x05\x12\x13\n\x0b\x66\x65\x61
ture_dim
\x18\x02
\x01
(
\x05\x12\x10\n\x08
slot_key
\x18\x03
\x03
(
\t\x12\x12\n\n
slot_value
\x18\x04
\x03
(
\t\x12\x15\n\r
slot_gradient
\x18\x05
\x03
(
\t\"\x86\x01\n\x17\x44
ownpourServerParameter
\x12\x34\n\x14\x64
ownpour_table_param
\x18\x01
\x03
(
\x0b\x32\x16
.paddle.TableParameter
\x12\x35\n\r
service_param
\x18\x02
\x01
(
\x0b\x32\x1e
.paddle.ServerServiceParameter
\"\x91\x01\n\x16
ServerServiceParameter
\x12\x14\n\x0c
server_class
\x18\x01
\x01
(
\t\x12\x14\n\x0c\x63
lient_class
\x18\x02
\x01
(
\t\x12\x15\n\r
service_class
\x18\x03
\x01
(
\t\x12\x19\n\x11
start_server_port
\x18\x04
\x01
(
\r\x12\x19\n\x11
server_thread_num
\x18\x05
\x01
(
\r\"\xbf\x01\n\x0e
TableParameter
\x12\x10\n\x08
table_id
\x18\x01
\x01
(
\x04\x12\x13\n\x0b
table_class
\x18\x02
\x01
(
\t\x12\x12\n\n
shared_num
\x18\x03
\x01
(
\x04\x12\x30\n\x08\x61\x63\x63\x65
ssor
\x18\x04
\x01
(
\x0b\x32\x1e
.paddle.TableAccessorParameter
\x12\x1f\n\x04
type
\x18\x05
\x01
(
\x0e\x32\x11
.paddle.TableType
\x12\x1f\n\x10\x63
ompress_in_save
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\"\xf1\x02\n\x16
TableAccessorParameter
\x12\x16\n\x0e\x61\x63\x63\x65
ssor_class
\x18\x01
\x01
(
\t\x12\x38\n\x10
sparse_sgd_param
\x18\x02
\x01
(
\x0b\x32\x1e
.paddle.SparseSGDRuleParameter
\x12\x36\n\x0f\x64\x65
nse_sgd_param
\x18\x03
\x01
(
\x0b\x32\x1d
.paddle.DenseSGDRuleParameter
\x12\x0f\n\x07\x66\x65\x61
_dim
\x18\x04
\x01
(
\r\x12\x12\n\n
embedx_dim
\x18\x05
\x01
(
\r\x12\x18\n\x10\x65
mbedx_threshold
\x18\x06
\x01
(
\r\x12
G
\n\x17\x64
ownpour_accessor_param
\x18\x07
\x01
(
\x0b\x32
&.paddle.DownpourTableAccessorParameter
\x12\x45\n\x19
table_accessor_save_param
\x18\x08
\x03
(
\x0b\x32\"
.paddle.TableAccessorSaveParameter
\"\xce\x01\n\x1e\x44
ownpourTableAccessorParameter
\x12\x14\n\x0c
nonclk_coeff
\x18\x01
\x01
(
\x02\x12\x13\n\x0b\x63
lick_coeff
\x18\x02
\x01
(
\x02\x12\x16\n\x0e\x62\x61
se_threshold
\x18\x03
\x01
(
\x02\x12\x17\n\x0f\x64\x65
lta_threshold
\x18\x04
\x01
(
\x02\x12\x17\n\x0f\x64\x65
lta_keep_days
\x18\x05
\x01
(
\x02\x12\x1d\n\x15
show_click_decay_rate
\x18\x06
\x01
(
\x02\x12\x18\n\x10\x64\x65
lete_threshold
\x18\x07
\x01
(
\x02\"
S
\n\x1a
TableAccessorSaveParameter
\x12\r\n\x05
param
\x18\x01
\x01
(
\r\x12\x11\n\t
converter
\x18\x02
\x01
(
\t\x12\x13\n\x0b\x64\x65\x63
onverter
\x18\x03
\x01
(
\t\"
e
\n\x10
PsRequestMessage
\x12\x0e\n\x06\x63
md_id
\x18\x01
\x02
(
\r\x12\x10\n\x08
table_id
\x18\x02
\x01
(
\r\x12\x0e\n\x06
params
\x18\x03
\x03
(
\x0c\x12\x11\n\t
client_id
\x18\x04
\x01
(
\x05\x12\x0c\n\x04\x64\x61
ta
\x18\x05
\x01
(
\x0c\"
w
\n\x16
SparseSGDRuleParameter
\x12\x15\n\r
learning_rate
\x18\x01
\x01
(
\x01\x12\x15\n\r
initial_g2sum
\x18\x02
\x01
(
\x01\x12\x18\n\r
initial_range
\x18\x03
\x01
(
\x01
:
\x01\x30\x12\x15\n\r
weight_bounds
\x18\x04
\x03
(
\x02\"\xe1\x01\n\x15\x44\x65
nseSGDRuleParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12
&
\n\x04\x61\x64\x61
m
\x18\x02
\x01
(
\x0b\x32\x18
.paddle.AdamSGDParameter
\x12
(
\n\x05
naive
\x18\x03
\x01
(
\x0b\x32\x19
.paddle.NaiveSGDParameter
\x12
,
\n\x07
summary
\x18\x04
\x01
(
\x0b\x32\x1b
.paddle.SummarySGDParameter
\x12
:
\n\x0e
moving_average
\x18\x05
\x01
(
\x0b\x32\"
.paddle.MovingAverageRuleParameter
\"\x86\x01\n\x10\x41\x64\x61
mSGDParameter
\x12\x15\n\r
learning_rate
\x18\x01
\x01
(
\x01\x12\x16\n\x0e\x61
vg_decay_rate
\x18\x02
\x01
(
\x01\x12\x16\n\x0e\x61\x64\x61
_decay_rate
\x18\x03
\x01
(
\x01\x12\x13\n\x0b\x61\x64\x61
_epsilon
\x18\x04
\x01
(
\x01\x12\x16\n\x0e
mom_decay_rate
\x18\x05
\x01
(
\x01\"
B
\n\x11
NaiveSGDParameter
\x12\x15\n\r
learning_rate
\x18\x01
\x01
(
\x01\x12\x16\n\x0e\x61
vg_decay_rate
\x18\x02
\x01
(
\x01\"
;
\n\x13
SummarySGDParameter
\x12
$
\n\x12
summary_decay_rate
\x18\x01
\x01
(
\x01
:
\x08\x30
.999999
\"
.
\n\x1a
MovingAverageRuleParameter
\x12\x10\n\x08
momentum
\x18\x01
\x01
(
\x01\"
I
\n\x11
PsResponseMessage
\x12\x13\n\x08\x65
rr_code
\x18\x01
\x02
(
\x05
:
\x01\x30\x12\x11\n\x07\x65
rr_msg
\x18\x02
\x02
(
\t
:
\x00\x12\x0c\n\x04\x64\x61
ta
\x18\x03
\x01
(
\x0c\"\xd5\x01\n\x11\x46
sClientParameter
\x12
:
\n\x07\x66
s_type
\x18\x01
\x01
(
\x0e\x32
#.paddle.FsClientParameter.FsApiType:
\x04
HDFS
\x12\x0b\n\x03
uri
\x18\x02
\x01
(
\t\x12\x0c\n\x04
user
\x18\x03
\x01
(
\t\x12\x0e\n\x06
passwd
\x18\x04
\x01
(
\t\x12\x13\n\x0b\x62
uffer_size
\x18\x05
\x01
(
\x05\x12\x12\n\n
hadoop_bin
\x18\x33
\x01
(
\t\x12\x10\n\x08\x61\x66
s_conf
\x18\x65
\x01
(
\t\"\x1e\n\t
FsApiType
\x12\x08\n\x04
HDFS
\x10\x00\x12\x07\n\x03\x41\x46
S
\x10\x01
*4
\n\t
TableType
\x12\x13\n\x0f
PS_SPARSE_TABLE
\x10\x00\x12\x12\n\x0e
PS_DENSE_TABLE
\x10\x01
*
\xbd\x02\n\x07
PsCmdID
\x12\x17\n\x13
PS_PULL_DENSE_TABLE
\x10\x00\x12\x17\n\x13
PS_PUSH_DENSE_TABLE
\x10\x01\x12\x18\n\x14
PS_PULL_SPARSE_TABLE
\x10\x02\x12\x18\n\x14
PS_PUSH_SPARSE_TABLE
\x10\x03\x12\x13\n\x0f
PS_SHRINK_TABLE
\x10\x04\x12\x15\n\x11
PS_SAVE_ONE_TABLE
\x10\x05\x12\x15\n\x11
PS_SAVE_ALL_TABLE
\x10\x06\x12\x15\n\x11
PS_LOAD_ONE_TABLE
\x10\x07\x12\x15\n\x11
PS_LOAD_ALL_TABLE
\x10\x08\x12\x16\n\x12
PS_CLEAR_ONE_TABLE
\x10\t\x12\x16\n\x12
PS_CLEAR_ALL_TABLE
\x10\n\x12\x17\n\x13
PS_PUSH_DENSE_PARAM
\x10\x0b\x12\x12\n\x0e
PS_STOP_SERVER
\x10\x0c\x32
K
\n\t
PsService
\x12
>
\n\x07
service
\x12\x18
.paddle.PsRequestMessage
\x1a\x19
.paddle.PsResponseMessageB
\x03\x80\x01\x01
'
)
serialized_pb
=
_b
(
'
\n\x08
ps.proto
\x12\x06
paddle
\"\x
9e\x02\n\x0b
PSParameter
\x12\x14\n\x0c
worker_class
\x18\x01
\x01
(
\t\x12\x14\n\x0c
server_class
\x18\x02
\x01
(
\t\x12\x16\n\x0e
instance_class
\x18\x03
\x01
(
\t\x12
-
\n\x0c
worker_param
\x18\x65
\x01
(
\x0b\x32\x17
.paddle.WorkerParameter
\x12
-
\n\x0c
server_param
\x18\x66
\x01
(
\x0b\x32\x17
.paddle.ServerParameter
\x12\x38\n\r
trainer_param
\x18\xad\x02
\x01
(
\x0b\x32
.paddle.DownpourTrainerParameter
\x12\x33\n\x0f\x66
s_client_param
\x18\xf5\x03
\x01
(
\x0b\x32\x19
.paddle.FsClientParameter
\"
Q
\n\x0f
WorkerParameter
\x12
>
\n\x15\x64
ownpour_worker_param
\x18\x01
\x01
(
\x0b\x32\x1f
.paddle.DownpourWorkerParameter
\"
Q
\n\x0f
ServerParameter
\x12
>
\n\x15\x64
ownpour_server_param
\x18\x01
\x01
(
\x0b\x32\x1f
.paddle.DownpourServerParameter
\"
O
\n\x17\x44
ownpourWorkerParameter
\x12\x34\n\x14\x64
ownpour_table_param
\x18\x01
\x03
(
\x0b\x32\x16
.paddle.TableParameter
\"\xbc\x01\n\x18\x44
ownpourTrainerParameter
\x12\x30\n\x0b\x64\x65
nse_table
\x18\x01
\x03
(
\x0b\x32\x1b
.paddle.DenseTableParameter
\x12\x32\n\x0c
sparse_table
\x18\x02
\x03
(
\x0b\x32\x1c
.paddle.SparseTableParameter
\x12\x1c\n\x14
pull_dense_per_batch
\x18\x03
\x01
(
\x05\x12\x1c\n\x14
push_dense_per_batch
\x18\x04
\x01
(
\x05\"
{
\n\x13\x44\x65
nseTableParameter
\x12\x10\n\x08
table_id
\x18\x01
\x01
(
\x05\x12\x1b\n\x13\x64\x65
nse_variable_name
\x18\x02
\x03
(
\t\x12
$
\n\x1c\x64\x65
nse_gradient_variable_name
\x18\x03
\x03
(
\t\x12\x0f\n\x07\x66\x65\x61
_dim
\x18\x04
\x01
(
\x05\"
z
\n\x14
SparseTableParameter
\x12\x10\n\x08
table_id
\x18\x01
\x01
(
\x05\x12\x13\n\x0b\x66\x65\x61
ture_dim
\x18\x02
\x01
(
\x05\x12\x10\n\x08
slot_key
\x18\x03
\x03
(
\t\x12\x12\n\n
slot_value
\x18\x04
\x03
(
\t\x12\x15\n\r
slot_gradient
\x18\x05
\x03
(
\t\"\x86\x01\n\x17\x44
ownpourServerParameter
\x12\x34\n\x14\x64
ownpour_table_param
\x18\x01
\x03
(
\x0b\x32\x16
.paddle.TableParameter
\x12\x35\n\r
service_param
\x18\x02
\x01
(
\x0b\x32\x1e
.paddle.ServerServiceParameter
\"\x91\x01\n\x16
ServerServiceParameter
\x12\x14\n\x0c
server_class
\x18\x01
\x01
(
\t\x12\x14\n\x0c\x63
lient_class
\x18\x02
\x01
(
\t\x12\x15\n\r
service_class
\x18\x03
\x01
(
\t\x12\x19\n\x11
start_server_port
\x18\x04
\x01
(
\r\x12\x19\n\x11
server_thread_num
\x18\x05
\x01
(
\r\"\xbf\x01\n\x0e
TableParameter
\x12\x10\n\x08
table_id
\x18\x01
\x01
(
\x04\x12\x13\n\x0b
table_class
\x18\x02
\x01
(
\t\x12\x12\n\n
shared_num
\x18\x03
\x01
(
\x04\x12\x30\n\x08\x61\x63\x63\x65
ssor
\x18\x04
\x01
(
\x0b\x32\x1e
.paddle.TableAccessorParameter
\x12\x1f\n\x04
type
\x18\x05
\x01
(
\x0e\x32\x11
.paddle.TableType
\x12\x1f\n\x10\x63
ompress_in_save
\x18\x06
\x01
(
\x08
:
\x05\x66\x61
lse
\"\xf1\x02\n\x16
TableAccessorParameter
\x12\x16\n\x0e\x61\x63\x63\x65
ssor_class
\x18\x01
\x01
(
\t\x12\x38\n\x10
sparse_sgd_param
\x18\x02
\x01
(
\x0b\x32\x1e
.paddle.SparseSGDRuleParameter
\x12\x36\n\x0f\x64\x65
nse_sgd_param
\x18\x03
\x01
(
\x0b\x32\x1d
.paddle.DenseSGDRuleParameter
\x12\x0f\n\x07\x66\x65\x61
_dim
\x18\x04
\x01
(
\r\x12\x12\n\n
embedx_dim
\x18\x05
\x01
(
\r\x12\x18\n\x10\x65
mbedx_threshold
\x18\x06
\x01
(
\r\x12
G
\n\x17\x64
ownpour_accessor_param
\x18\x07
\x01
(
\x0b\x32
&.paddle.DownpourTableAccessorParameter
\x12\x45\n\x19
table_accessor_save_param
\x18\x08
\x03
(
\x0b\x32\"
.paddle.TableAccessorSaveParameter
\"\xce\x01\n\x1e\x44
ownpourTableAccessorParameter
\x12\x14\n\x0c
nonclk_coeff
\x18\x01
\x01
(
\x02\x12\x13\n\x0b\x63
lick_coeff
\x18\x02
\x01
(
\x02\x12\x16\n\x0e\x62\x61
se_threshold
\x18\x03
\x01
(
\x02\x12\x17\n\x0f\x64\x65
lta_threshold
\x18\x04
\x01
(
\x02\x12\x17\n\x0f\x64\x65
lta_keep_days
\x18\x05
\x01
(
\x02\x12\x1d\n\x15
show_click_decay_rate
\x18\x06
\x01
(
\x02\x12\x18\n\x10\x64\x65
lete_threshold
\x18\x07
\x01
(
\x02\"
S
\n\x1a
TableAccessorSaveParameter
\x12\r\n\x05
param
\x18\x01
\x01
(
\r\x12\x11\n\t
converter
\x18\x02
\x01
(
\t\x12\x13\n\x0b\x64\x65\x63
onverter
\x18\x03
\x01
(
\t\"
e
\n\x10
PsRequestMessage
\x12\x0e\n\x06\x63
md_id
\x18\x01
\x02
(
\r\x12\x10\n\x08
table_id
\x18\x02
\x01
(
\r\x12\x0e\n\x06
params
\x18\x03
\x03
(
\x0c\x12\x11\n\t
client_id
\x18\x04
\x01
(
\x05\x12\x0c\n\x04\x64\x61
ta
\x18\x05
\x01
(
\x0c\"
w
\n\x16
SparseSGDRuleParameter
\x12\x15\n\r
learning_rate
\x18\x01
\x01
(
\x01\x12\x15\n\r
initial_g2sum
\x18\x02
\x01
(
\x01\x12\x18\n\r
initial_range
\x18\x03
\x01
(
\x01
:
\x01\x30\x12\x15\n\r
weight_bounds
\x18\x04
\x03
(
\x02\"\xe1\x01\n\x15\x44\x65
nseSGDRuleParameter
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\x12
&
\n\x04\x61\x64\x61
m
\x18\x02
\x01
(
\x0b\x32\x18
.paddle.AdamSGDParameter
\x12
(
\n\x05
naive
\x18\x03
\x01
(
\x0b\x32\x19
.paddle.NaiveSGDParameter
\x12
,
\n\x07
summary
\x18\x04
\x01
(
\x0b\x32\x1b
.paddle.SummarySGDParameter
\x12
:
\n\x0e
moving_average
\x18\x05
\x01
(
\x0b\x32\"
.paddle.MovingAverageRuleParameter
\"\x86\x01\n\x10\x41\x64\x61
mSGDParameter
\x12\x15\n\r
learning_rate
\x18\x01
\x01
(
\x01\x12\x16\n\x0e\x61
vg_decay_rate
\x18\x02
\x01
(
\x01\x12\x16\n\x0e\x61\x64\x61
_decay_rate
\x18\x03
\x01
(
\x01\x12\x13\n\x0b\x61\x64\x61
_epsilon
\x18\x04
\x01
(
\x01\x12\x16\n\x0e
mom_decay_rate
\x18\x05
\x01
(
\x01\"
B
\n\x11
NaiveSGDParameter
\x12\x15\n\r
learning_rate
\x18\x01
\x01
(
\x01\x12\x16\n\x0e\x61
vg_decay_rate
\x18\x02
\x01
(
\x01\"
;
\n\x13
SummarySGDParameter
\x12
$
\n\x12
summary_decay_rate
\x18\x01
\x01
(
\x01
:
\x08\x30
.999999
\"
.
\n\x1a
MovingAverageRuleParameter
\x12\x10\n\x08
momentum
\x18\x01
\x01
(
\x01\"
I
\n\x11
PsResponseMessage
\x12\x13\n\x08\x65
rr_code
\x18\x01
\x02
(
\x05
:
\x01\x30\x12\x11\n\x07\x65
rr_msg
\x18\x02
\x02
(
\t
:
\x00\x12\x0c\n\x04\x64\x61
ta
\x18\x03
\x01
(
\x0c\"\xd5\x01\n\x11\x46
sClientParameter
\x12
:
\n\x07\x66
s_type
\x18\x01
\x01
(
\x0e\x32
#.paddle.FsClientParameter.FsApiType:
\x04
HDFS
\x12\x0b\n\x03
uri
\x18\x02
\x01
(
\t\x12\x0c\n\x04
user
\x18\x03
\x01
(
\t\x12\x0e\n\x06
passwd
\x18\x04
\x01
(
\t\x12\x13\n\x0b\x62
uffer_size
\x18\x05
\x01
(
\x05\x12\x12\n\n
hadoop_bin
\x18\x33
\x01
(
\t\x12\x10\n\x08\x61\x66
s_conf
\x18\x65
\x01
(
\t\"\x1e\n\t
FsApiType
\x12\x08\n\x04
HDFS
\x10\x00\x12\x07\n\x03\x41\x46
S
\x10\x01
*4
\n\t
TableType
\x12\x13\n\x0f
PS_SPARSE_TABLE
\x10\x00\x12\x12\n\x0e
PS_DENSE_TABLE
\x10\x01
*
\xbd\x02\n\x07
PsCmdID
\x12\x17\n\x13
PS_PULL_DENSE_TABLE
\x10\x00\x12\x17\n\x13
PS_PUSH_DENSE_TABLE
\x10\x01\x12\x18\n\x14
PS_PULL_SPARSE_TABLE
\x10\x02\x12\x18\n\x14
PS_PUSH_SPARSE_TABLE
\x10\x03\x12\x13\n\x0f
PS_SHRINK_TABLE
\x10\x04\x12\x15\n\x11
PS_SAVE_ONE_TABLE
\x10\x05\x12\x15\n\x11
PS_SAVE_ALL_TABLE
\x10\x06\x12\x15\n\x11
PS_LOAD_ONE_TABLE
\x10\x07\x12\x15\n\x11
PS_LOAD_ALL_TABLE
\x10\x08\x12\x16\n\x12
PS_CLEAR_ONE_TABLE
\x10\t\x12\x16\n\x12
PS_CLEAR_ALL_TABLE
\x10\n\x12\x17\n\x13
PS_PUSH_DENSE_PARAM
\x10\x0b\x12\x12\n\x0e
PS_STOP_SERVER
\x10\x0c\x32
K
\n\t
PsService
\x12
>
\n\x07
service
\x12\x18
.paddle.PsRequestMessage
\x1a\x19
.paddle.PsResponseMessageB
\x03\x80\x01\x01
'
)
)
_sym_db
.
RegisterFileDescriptor
(
DESCRIPTOR
)
...
...
@@ -41,8 +41,8 @@ _TABLETYPE = _descriptor.EnumDescriptor(
],
containing_type
=
None
,
options
=
None
,
serialized_start
=
31
40
,
serialized_end
=
3
192
,
serialized_start
=
31
98
,
serialized_end
=
3
250
,
)
_sym_db
.
RegisterEnumDescriptor
(
_TABLETYPE
)
...
...
@@ -108,8 +108,8 @@ _PSCMDID = _descriptor.EnumDescriptor(
],
containing_type
=
None
,
options
=
None
,
serialized_start
=
3
195
,
serialized_end
=
35
12
,
serialized_start
=
3
253
,
serialized_end
=
35
70
,
)
_sym_db
.
RegisterEnumDescriptor
(
_PSCMDID
)
...
...
@@ -148,8 +148,8 @@ _FSCLIENTPARAMETER_FSAPITYPE = _descriptor.EnumDescriptor(
],
containing_type
=
None
,
options
=
None
,
serialized_start
=
31
08
,
serialized_end
=
31
38
,
serialized_start
=
31
66
,
serialized_end
=
31
96
,
)
_sym_db
.
RegisterEnumDescriptor
(
_FSCLIENTPARAMETER_FSAPITYPE
)
...
...
@@ -197,7 +197,14 @@ _PSPARAMETER = _descriptor.Descriptor(
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'fs_client_param'
,
full_name
=
'paddle.PSParameter.fs_client_param'
,
index
=
5
,
name
=
'trainer_param'
,
full_name
=
'paddle.PSParameter.trainer_param'
,
index
=
5
,
number
=
301
,
type
=
11
,
cpp_type
=
10
,
label
=
1
,
has_default_value
=
False
,
default_value
=
None
,
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'fs_client_param'
,
full_name
=
'paddle.PSParameter.fs_client_param'
,
index
=
6
,
number
=
501
,
type
=
11
,
cpp_type
=
10
,
label
=
1
,
has_default_value
=
False
,
default_value
=
None
,
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
...
...
@@ -216,7 +223,7 @@ _PSPARAMETER = _descriptor.Descriptor(
oneofs
=
[
],
serialized_start
=
21
,
serialized_end
=
249
,
serialized_end
=
307
,
)
...
...
@@ -246,8 +253,8 @@ _WORKERPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
251
,
serialized_end
=
3
32
,
serialized_start
=
309
,
serialized_end
=
3
90
,
)
...
...
@@ -277,8 +284,8 @@ _SERVERPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
3
34
,
serialized_end
=
4
15
,
serialized_start
=
3
92
,
serialized_end
=
4
73
,
)
...
...
@@ -308,8 +315,8 @@ _DOWNPOURWORKERPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
4
17
,
serialized_end
=
496
,
serialized_start
=
4
75
,
serialized_end
=
554
,
)
...
...
@@ -322,28 +329,28 @@ _DOWNPOURTRAINERPARAMETER = _descriptor.Descriptor(
fields
=
[
_descriptor
.
FieldDescriptor
(
name
=
'dense_table'
,
full_name
=
'paddle.DownpourTrainerParameter.dense_table'
,
index
=
0
,
number
=
2
,
type
=
11
,
cpp_type
=
10
,
label
=
3
,
number
=
1
,
type
=
11
,
cpp_type
=
10
,
label
=
3
,
has_default_value
=
False
,
default_value
=
[],
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'sparse_table'
,
full_name
=
'paddle.DownpourTrainerParameter.sparse_table'
,
index
=
1
,
number
=
3
,
type
=
11
,
cpp_type
=
10
,
label
=
3
,
number
=
2
,
type
=
11
,
cpp_type
=
10
,
label
=
3
,
has_default_value
=
False
,
default_value
=
[],
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'pull_dense_per_batch'
,
full_name
=
'paddle.DownpourTrainerParameter.pull_dense_per_batch'
,
index
=
2
,
number
=
4
,
type
=
5
,
cpp_type
=
1
,
label
=
1
,
number
=
3
,
type
=
5
,
cpp_type
=
1
,
label
=
1
,
has_default_value
=
False
,
default_value
=
0
,
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
is_extension
=
False
,
extension_scope
=
None
,
options
=
None
),
_descriptor
.
FieldDescriptor
(
name
=
'push_dense_per_batch'
,
full_name
=
'paddle.DownpourTrainerParameter.push_dense_per_batch'
,
index
=
3
,
number
=
5
,
type
=
5
,
cpp_type
=
1
,
label
=
1
,
number
=
4
,
type
=
5
,
cpp_type
=
1
,
label
=
1
,
has_default_value
=
False
,
default_value
=
0
,
message_type
=
None
,
enum_type
=
None
,
containing_type
=
None
,
is_extension
=
False
,
extension_scope
=
None
,
...
...
@@ -360,8 +367,8 @@ _DOWNPOURTRAINERPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
499
,
serialized_end
=
687
,
serialized_start
=
557
,
serialized_end
=
745
,
)
...
...
@@ -412,8 +419,8 @@ _DENSETABLEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
689
,
serialized_end
=
8
12
,
serialized_start
=
747
,
serialized_end
=
8
70
,
)
...
...
@@ -471,8 +478,8 @@ _SPARSETABLEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
8
14
,
serialized_end
=
9
36
,
serialized_start
=
8
72
,
serialized_end
=
9
94
,
)
...
...
@@ -509,8 +516,8 @@ _DOWNPOURSERVERPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
9
39
,
serialized_end
=
1
073
,
serialized_start
=
9
97
,
serialized_end
=
1
131
,
)
...
...
@@ -568,8 +575,8 @@ _SERVERSERVICEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
1
076
,
serialized_end
=
12
21
,
serialized_start
=
1
134
,
serialized_end
=
12
79
,
)
...
...
@@ -634,8 +641,8 @@ _TABLEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
12
24
,
serialized_end
=
14
15
,
serialized_start
=
12
82
,
serialized_end
=
14
73
,
)
...
...
@@ -714,8 +721,8 @@ _TABLEACCESSORPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
14
18
,
serialized_end
=
1
787
,
serialized_start
=
14
76
,
serialized_end
=
1
845
,
)
...
...
@@ -787,8 +794,8 @@ _DOWNPOURTABLEACCESSORPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
1
790
,
serialized_end
=
1996
,
serialized_start
=
1
848
,
serialized_end
=
2054
,
)
...
...
@@ -832,8 +839,8 @@ _TABLEACCESSORSAVEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
1998
,
serialized_end
=
2
081
,
serialized_start
=
2056
,
serialized_end
=
2
139
,
)
...
...
@@ -891,8 +898,8 @@ _PSREQUESTMESSAGE = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
2
083
,
serialized_end
=
2
184
,
serialized_start
=
2
141
,
serialized_end
=
2
242
,
)
...
...
@@ -943,8 +950,8 @@ _SPARSESGDRULEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
2
186
,
serialized_end
=
23
05
,
serialized_start
=
2
244
,
serialized_end
=
23
63
,
)
...
...
@@ -1002,8 +1009,8 @@ _DENSESGDRULEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
23
08
,
serialized_end
=
25
33
,
serialized_start
=
23
66
,
serialized_end
=
25
91
,
)
...
...
@@ -1061,8 +1068,8 @@ _ADAMSGDPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
25
36
,
serialized_end
=
2
670
,
serialized_start
=
25
94
,
serialized_end
=
2
728
,
)
...
...
@@ -1099,8 +1106,8 @@ _NAIVESGDPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
2
672
,
serialized_end
=
27
38
,
serialized_start
=
2
730
,
serialized_end
=
27
96
,
)
...
...
@@ -1130,8 +1137,8 @@ _SUMMARYSGDPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
27
40
,
serialized_end
=
2
799
,
serialized_start
=
27
98
,
serialized_end
=
2
857
,
)
...
...
@@ -1161,8 +1168,8 @@ _MOVINGAVERAGERULEPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
28
01
,
serialized_end
=
2
847
,
serialized_start
=
28
59
,
serialized_end
=
2
905
,
)
...
...
@@ -1206,8 +1213,8 @@ _PSRESPONSEMESSAGE = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
2
849
,
serialized_end
=
29
22
,
serialized_start
=
2
907
,
serialized_end
=
29
80
,
)
...
...
@@ -1280,12 +1287,13 @@ _FSCLIENTPARAMETER = _descriptor.Descriptor(
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
29
25
,
serialized_end
=
31
38
,
serialized_start
=
29
83
,
serialized_end
=
31
96
,
)
_PSPARAMETER
.
fields_by_name
[
'worker_param'
].
message_type
=
_WORKERPARAMETER
_PSPARAMETER
.
fields_by_name
[
'server_param'
].
message_type
=
_SERVERPARAMETER
_PSPARAMETER
.
fields_by_name
[
'trainer_param'
].
message_type
=
_DOWNPOURTRAINERPARAMETER
_PSPARAMETER
.
fields_by_name
[
'fs_client_param'
].
message_type
=
_FSCLIENTPARAMETER
_WORKERPARAMETER
.
fields_by_name
[
'downpour_worker_param'
].
message_type
=
_DOWNPOURWORKERPARAMETER
_SERVERPARAMETER
.
fields_by_name
[
'downpour_server_param'
].
message_type
=
_DOWNPOURSERVERPARAMETER
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录