Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Oneflow-Inc
oneflow
提交
775d3772
O
oneflow
项目概览
Oneflow-Inc
/
oneflow
上一次同步 2 年多
通知
13
Star
2733
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oneflow
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
775d3772
编写于
2月 24, 2017
作者:
W
willzhang4a58
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
temp save
上级
19464a6d
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
78 addition
and
18 deletion
+78
-18
oneflow/blob/blob_descriptor.h
oneflow/blob/blob_descriptor.h
+7
-6
oneflow/dag/logical_dag.cpp
oneflow/dag/logical_dag.cpp
+12
-2
oneflow/dag/logical_dag.h
oneflow/dag/logical_dag.h
+18
-0
oneflow/dag/logical_data_node.h
oneflow/dag/logical_data_node.h
+11
-0
oneflow/dag/logical_op_node.h
oneflow/dag/logical_op_node.h
+20
-0
oneflow/layer/layer_desc_factory.cpp
oneflow/layer/layer_desc_factory.cpp
+9
-9
oneflow/layer/layer_desc_factory.h
oneflow/layer/layer_desc_factory.h
+1
-1
未找到文件。
oneflow/blob/blob_descriptor.h
浏览文件 @
775d3772
...
...
@@ -13,12 +13,8 @@ class BlobDescriptor {
BlobDescriptor
()
=
default
;
~
BlobDescriptor
()
=
default
;
void
init
(
const
Shape
&
rhs_shape
,
const
MemoryContext
&
rhs_memory_context
,
FloatType
rhs_float_type
)
{
shape_
=
rhs_shape
;
memory_context_
=
rhs_memory_context
;
float_type_
=
rhs_float_type
;
void
Init
()
{
// struct style
}
const
Shape
&
shape
()
const
{
return
shape_
;
}
...
...
@@ -27,6 +23,11 @@ class BlobDescriptor {
return
shape_
.
elem_cnt
()
*
GetFloatByteSize
(
float_type_
);
}
Shape
&
mutable_shape
()
{
return
shape_
;
}
MemoryContext
&
mutable_memory_context
()
{
return
memory_context_
;
}
FloatType
&
mutable_float_type
()
{
return
float_type_
;
}
private:
Shape
shape_
;
MemoryContext
memory_context_
;
...
...
oneflow/dag/logical_dag.cpp
浏览文件 @
775d3772
#include "dag/logical_dag.h"
#include "layer/layer_desc_factory.h"
namespace
oneflow
{
...
...
@@ -10,10 +11,19 @@ void LogicalDag::Init(const std::string& dag_name,
FillNodeWithPlacement
(
strategy_conf
);
}
void
BuildDagStruct
(
const
DLNetConf
&
dl_net_conf
)
{
void
LogicalDag
::
BuildDagStruct
(
const
DLNetConf
&
dl_net_conf
)
{
for
(
int
layer_i
=
0
;
layer_i
<
dl_net_conf
.
layer_conf_size
();
++
layer_i
)
{
const
LayerConf
&
cur_layer_conf
=
dl_net_conf
.
layer_conf
(
layer_i
);
// TODO
// Construct op node
LogicalOpNode
*
cur_op_node
=
NewLogicalOpNode
();
cur_op_node
->
mutable_layer_desc
()
=
LayerDescFactory
::
singleton
().
ConstructLayerDesc
(
cur_layer_conf
);
// Construct input data node
for
(
const
std
::
string
&
input_blob_name
:
cur_op_node
->
layer_desc
().
data_blob_desc_set
().
input_blob_names
())
{
input_blob_name
.
find
(
'/'
);
}
// Construct output data node
}
}
...
...
oneflow/dag/logical_dag.h
浏览文件 @
775d3772
#ifndef ONEFLOW_DAG_LOGICAL_DAG_H
#define ONEFLOW_DAG_LOGICAL_DAG_H
#include <memory>
#include "dag/dag.h"
#include "dag/logical_data_node.h"
#include "dag/logical_op_node.h"
...
...
@@ -23,6 +24,23 @@ class LogicalDag : public Dag {
void
BuildDagStruct
(
const
DLNetConf
&
dl_net_conf
);
void
FillNodeWithPlacement
(
const
Strategy
&
strategy_conf
);
LogicalDataNode
*
NewLogicalDataNode
()
{
std
::
unique_ptr
<
LogicalDataNode
>
new_node
(
new
LogicalDataNode
);
new_node
->
Init
();
logical_data_node_vec_
.
push_back
(
std
::
move
(
new_node
));
return
logical_data_node_vec_
.
back
().
get
();
}
LogicalOpNode
*
NewLogicalOpNode
()
{
std
::
unique_ptr
<
LogicalOpNode
>
new_node
(
new
LogicalOpNode
);
new_node
->
Init
();
logical_op_node_vec_
.
push_back
(
std
::
move
(
new_node
));
return
logical_op_node_vec_
.
back
().
get
();
}
std
::
vector
<
std
::
unique_ptr
<
LogicalDataNode
>>
logical_data_node_vec_
;
std
::
vector
<
std
::
unique_ptr
<
LogicalOpNode
>>
logical_op_node_vec_
;
};
}
// namespace oneflow
...
...
oneflow/dag/logical_data_node.h
浏览文件 @
775d3772
...
...
@@ -2,6 +2,7 @@
#define ONEFLOW_LOGICAL_DATA_NODE_H_
#include "dag/data_node.h"
#include "blob/blob_descriptor.h"
namespace
oneflow
{
...
...
@@ -13,9 +14,19 @@ class LogicalDataNode : public DataNode {
void
Init
()
{
DataNode
::
Init
();
// struct style
}
const
BlobDescriptor
&
blob_desc
()
const
{
return
blob_desc_
;
}
BlobDescriptor
&
mutable_blob_desc
()
{
return
blob_desc_
;
}
private:
BlobDescriptor
blob_desc_
;
};
}
// namespace oneflow
...
...
oneflow/dag/logical_op_node.h
浏览文件 @
775d3772
...
...
@@ -2,6 +2,8 @@
#define ONEFLOW_LOGICAL_OP_NODE_H_
#include "dag/op_node.h"
#include "layer/base_layer_desc.h"
#include "job/strategy.pb.h"
namespace
oneflow
{
...
...
@@ -13,9 +15,27 @@ class LogicalOpNode : public OpNode {
void
Init
()
{
OpNode
::
Init
();
// struct style
}
const
BaseLayerDesc
&
layer_desc
()
const
{
return
*
(
layer_desc_
.
get
());
}
const
ParallelConf
&
parallel_conf
()
const
{
return
parallel_conf_
;
}
std
::
unique_ptr
<
BaseLayerDesc
>&
mutable_layer_desc
()
{
return
layer_desc_
;
}
ParallelConf
&
mutable_parallel_conf
()
{
return
parallel_conf_
;
}
private:
std
::
unique_ptr
<
BaseLayerDesc
>
layer_desc_
;
ParallelConf
parallel_conf_
;
};
}
// namespace oneflow
...
...
oneflow/layer/layer_desc_factory.cpp
浏览文件 @
775d3772
...
...
@@ -11,30 +11,30 @@
namespace
oneflow
{
// It is ugly now, maybe we can find one more elegant implemention ?
std
::
shared
_ptr
<
BaseLayerDesc
>
LayerDescFactory
::
ConstructLayerDesc
(
std
::
unique
_ptr
<
BaseLayerDesc
>
LayerDescFactory
::
ConstructLayerDesc
(
const
LayerConf
&
layer_conf
)
const
{
std
::
shared
_ptr
<
BaseLayerDesc
>
ret
;
std
::
unique
_ptr
<
BaseLayerDesc
>
ret
;
switch
(
layer_conf
.
specified_type_case
())
{
case
LayerConf
::
kConvolutionLayerConf
:
{
ret
=
std
::
make_shared
<
ConvolutionLayerDesc
>
(
);
ret
.
reset
(
new
ConvolutionLayerDesc
);
}
case
LayerConf
::
kInnerProductLayerConf
:
{
ret
=
std
::
make_shared
<
InnerProductLayerDesc
>
(
);
ret
.
reset
(
new
InnerProductLayerDesc
);
}
case
LayerConf
::
kLoaderLayerConf
:
{
ret
=
std
::
make_shared
<
LoaderLayerDesc
>
(
);
ret
.
reset
(
new
LoaderLayerDesc
);
}
case
LayerConf
::
kPoolingLayerConf
:
{
ret
=
std
::
make_shared
<
PoolingLayerDesc
>
(
);
ret
.
reset
(
new
PoolingLayerDesc
);
}
case
LayerConf
::
kReluLayerConf
:
{
ret
=
std
::
make_shared
<
ReluLayerDesc
>
(
);
ret
.
reset
(
new
ReluLayerDesc
);
}
case
LayerConf
::
kSoftmaxLayerConf
:
{
ret
=
std
::
make_shared
<
SoftmaxLayerDesc
>
(
);
ret
.
reset
(
new
SoftmaxLayerDesc
);
}
case
LayerConf
::
kMultinomialLogisticLossLayerConf
:
{
ret
=
std
::
make_shared
<
MultinomialLogisticLossLayerDesc
>
(
);
ret
.
reset
(
new
MultinomialLogisticLossLayerDesc
);
}
default:
{
LOG
(
FATAL
)
<<
"unknow layer"
;
...
...
oneflow/layer/layer_desc_factory.h
浏览文件 @
775d3772
...
...
@@ -15,7 +15,7 @@ class LayerDescFactory {
return
obj
;
}
std
::
shared
_ptr
<
BaseLayerDesc
>
ConstructLayerDesc
(
const
LayerConf
&
)
const
;
std
::
unique
_ptr
<
BaseLayerDesc
>
ConstructLayerDesc
(
const
LayerConf
&
)
const
;
private:
LayerDescFactory
()
=
default
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录