Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Pytorch Widedeep
提交
9b9dcde7
P
Pytorch Widedeep
项目概览
Greenplum
/
Pytorch Widedeep
11 个月 前同步成功
通知
9
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pytorch Widedeep
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9b9dcde7
编写于
10月 13, 2019
作者:
J
jrzaurin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added a warning related to the model name (needs to be a error)
上级
00eb5fbc
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
18 addition
and
15 deletion
+18
-15
pytorch_widedeep/initializers.py
pytorch_widedeep/initializers.py
+18
-15
未找到文件。
pytorch_widedeep/initializers.py
浏览文件 @
9b9dcde7
import
torch
import
warnings
from
torch
import
nn
from
fnmatch
import
fnmatch
from
.wdtypes
import
*
class
Initializer
(
object
):
def
__call__
(
self
,
model
:
TorchModel
):
...
...
@@ -23,12 +25,13 @@ class MultipleInitializers(object):
try
:
child
.
apply
(
self
.
_initializers
[
model_name
])
except
KeyError
:
raise
Exception
(
'Model name has to be one of: {}'
.
format
(
str
([
child
.
__class__
.
__name__
.
lower
()
for
child
in
children
])))
warnings
.
warn
(
'Model name has to be one of: {}'
.
format
(
str
([
child
.
__class__
.
__name__
.
lower
()
for
child
in
children
])),
ValueError
)
class
Normal
(
Initializer
):
def
__init__
(
self
,
mean
=
0.0
,
std
=
0.02
,
bias
=
False
,
pattern
=
'*'
,
pattern_in
=
True
):
def
__init__
(
self
,
mean
=
0.0
,
std
=
0.02
,
bias
=
False
,
pattern
=
'*'
):
self
.
mean
=
mean
self
.
std
=
std
self
.
bias
=
bias
...
...
@@ -37,10 +40,10 @@ class Normal(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
self
.
bias
and
(
'bias'
in
n
):
nn
.
init
.
normal_
(
p
,
mean
=
self
.
mean
,
std
=
self
.
std
)
elif
(
'bias'
in
n
)
:
elif
'bias'
in
n
:
continue
elif
p
.
requires_grad
:
nn
.
init
.
normal_
(
p
,
mean
=
self
.
mean
,
std
=
self
.
std
)
...
...
@@ -48,7 +51,7 @@ class Normal(Initializer):
class
Uniform
(
Initializer
):
def
__init__
(
self
,
a
=
0
,
b
=
1
,
bias
=
False
,
pattern
=
'*'
,
pattern_in
=
True
):
def
__init__
(
self
,
a
=
0
,
b
=
1
,
bias
=
False
,
pattern
=
'*'
):
self
.
a
=
a
self
.
b
=
b
self
.
bias
=
bias
...
...
@@ -57,10 +60,10 @@ class Uniform(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
self
.
bias
and
(
'bias'
in
n
):
nn
.
init
.
uniform_
(
p
,
a
=
self
.
a
,
b
=
self
.
b
)
elif
(
'bias'
in
n
)
:
elif
'bias'
in
n
:
continue
elif
p
.
requires_grad
:
nn
.
init
.
uniform_
(
p
,
a
=
self
.
a
,
b
=
self
.
b
)
...
...
@@ -76,12 +79,12 @@ class ConstantInitializer(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
self
.
bias
and
(
'bias'
in
n
):
nn
.
init
.
constant_
(
p
,
val
=
self
.
value
)
elif
(
'bias'
in
n
):
continue
elif
:
elif
p
.
requires_grad
:
p
.
requires_grad
:
nn
.
init
.
constant_
(
p
,
val
=
self
.
value
)
...
...
@@ -94,7 +97,7 @@ class XavierUniform(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
'bias'
in
n
:
nn
.
init
.
constant_
(
p
,
val
=
0
)
elif
p
.
requires_grad
:
nn
.
init
.
xavier_uniform_
(
p
,
gain
=
self
.
gain
)
...
...
@@ -108,7 +111,7 @@ class XavierNormal(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
'bias'
in
n
:
nn
.
init
.
constant_
(
p
,
val
=
0
)
elif
p
.
requires_grad
:
nn
.
init
.
xavier_normal_
(
p
,
gain
=
self
.
gain
)
...
...
@@ -123,7 +126,7 @@ class KaimingUniform(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
'bias'
in
n
:
nn
.
init
.
constant_
(
p
,
val
=
0
)
elif
p
.
requires_grad
:
nn
.
init
.
kaiming_uniform_
(
p
,
a
=
self
.
a
,
mode
=
self
.
mode
)
...
...
@@ -138,7 +141,7 @@ class KaimingNormal(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
'bias'
in
n
:
nn
.
init
.
constant_
(
p
,
val
=
0
)
elif
p
.
requires_grad
:
nn
.
init
.
kaiming_normal_
(
p
,
a
=
self
.
a
,
mode
=
self
.
mode
)
...
...
@@ -152,6 +155,6 @@ class Orthogonal(Initializer):
def
__call__
(
self
,
submodel
:
TorchModel
):
for
n
,
p
in
submodel
.
named_parameters
():
if
fnmatch
(
n
,
self
.
pattern
)
and
pattern_in
:
if
fnmatch
(
n
,
self
.
pattern
):
if
'bias'
in
n
:
nn
.
init
.
normal_
(
p
,
val
=
0
)
elif
p
.
requires_grad
:
nn
.
init
.
orthogonal_
(
p
,
gain
=
self
.
gain
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录