Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
94dfd864
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
94dfd864
编写于
9月 25, 2017
作者:
H
Helin Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix according to comments
上级
1c710053
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
12 deletion
+22
-12
doc/design/session.md
doc/design/session.md
+22
-12
未找到文件。
doc/design/session.md
浏览文件 @
94dfd864
...
...
@@ -6,26 +6,36 @@ This design doc proposes to have an object called *Session* which
encapsulates the environment in which the computation graph is
executed.
The session is able to distinguish running a graph locally or
remotely, using CPU only or using one or more GPUs. Different sessions
have different runtime environments such as
[
scopes
](
./scope.md
)
and
device contexts.
## Background
A computation graph is executed in an environment which contains the
[
scope
](
./scope.md
)
and other states. PaddlePaddle used to only have
an implicit global session on which
`paddle.eval()`
is executed.
A computation graph runs in an environment which contains states such
as the scope and device contexts. The current design has an implicit
global session on which
`paddle.eval()`
is executed.
Since the user is not able to explicitly switch between runtime
environments such as the scope and the device contexts, the user
cannot run a topology in two independent environments. For example, in
reinforcement learning, the user may want to have a stale model for
inference and a fresh model for training, and only replace the stale
model with the fresh model periodically. Also, we have no concept that
can encapsulate a remote environment that could execute a computation
graph.
This has the limitation that the user can not create two independent
environments. For example, in reinforcement learning, the user may
want to have a stale model for inference and a fresh model for
training, and only replace the stale model with the fresh model
periodically. Also, we have no concept that can encapsulate a remote
environment that could execute a computation graph.
We need a session concept to address above issues.
## Session
S
ession is an object that owns all runtime states such as scope,
A s
ession is an object that owns all runtime states such as scope,
reader OP's file handles, connection to a remote PaddlePaddle cluster,
etc.
S
ession has two methods:
`eval`
and
`close`
.
`eval`
executes the
The s
ession has two methods:
`eval`
and
`close`
.
`eval`
executes the
target OP in a given graph, and
`close`
closes the session and
releases all related resources:
...
...
@@ -51,7 +61,7 @@ image = reader.column(0)
label = reader.column(1)
fc1 = paddle.op.fc(image, size=256, act="sigmoid")
fc2 = paddle.op.fc(fc1, size=10, act="softmax")
cost = paddle.op.cross_entropy(fc2)
cost = paddle.op.cross_entropy(fc2
, label
)
opt = paddle.optimizer.sgd(cost)
remote_config = ... # remote configuration such as endpoint, number of nodes and authentication.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录