Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Pytorch Widedeep
提交
0b3777f2
P
Pytorch Widedeep
项目概览
Greenplum
/
Pytorch Widedeep
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
0b3777f2
编写于
5月 05, 2019
作者:
J
jrzaurin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updating to new model
上级
db1928d8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
93 deletion
+0
-93
main.py
main.py
+0
-93
未找到文件。
main.py
已删除
100644 → 0
浏览文件 @
db1928d8
from
__future__
import
print_function
import
os
import
torch
import
numpy
as
np
import
pandas
as
pd
from
wide_deep.torch_model
import
WideDeep
from
wide_deep.data_utils
import
prepare_data
if
__name__
==
'__main__'
:
use_cuda
=
torch
.
cuda
.
is_available
()
DF
=
pd
.
read_csv
(
'data/adult_data.csv'
)
DF
[
'income_label'
]
=
(
DF
[
"income_bracket"
].
apply
(
lambda
x
:
">50K"
in
x
)).
astype
(
int
)
# Experiment set up
wide_cols
=
[
'age'
,
'hours_per_week'
,
'education'
,
'relationship'
,
'workclass'
,
'occupation'
,
'native_country'
,
'gender'
]
crossed_cols
=
([
'education'
,
'occupation'
],
[
'native_country'
,
'occupation'
])
embeddings_cols
=
[(
'education'
,
10
),
(
'relationship'
,
8
),
(
'workclass'
,
10
),
(
'occupation'
,
10
),(
'native_country'
,
10
)]
continuous_cols
=
[
"age"
,
"hours_per_week"
]
target
=
'income_label'
method
=
'logistic'
# Prepare data
wd_dataset
=
prepare_data
(
DF
,
wide_cols
,
crossed_cols
,
embeddings_cols
,
continuous_cols
,
target
,
scale
=
True
)
# Network set up
wide_dim
=
wd_dataset
[
'train_dataset'
].
wide
.
shape
[
1
]
n_unique
=
len
(
np
.
unique
(
wd_dataset
[
'train_dataset'
].
labels
))
if
(
method
==
"regression"
)
or
(
method
==
"logistic"
):
n_class
=
1
else
:
n_class
=
n_unique
deep_column_idx
=
wd_dataset
[
'deep_column_idx'
]
embeddings_input
=
wd_dataset
[
'embeddings_input'
]
encoding_dict
=
wd_dataset
[
'encoding_dict'
]
hidden_layers
=
[
100
,
50
]
dropout
=
[
0.5
,
0.2
]
model
=
WideDeep
(
wide_dim
,
embeddings_input
,
continuous_cols
,
deep_column_idx
,
hidden_layers
,
dropout
,
encoding_dict
,
n_class
)
# if multiple compilers for wide and deep side:
# optimizer={'wide': ['name', lr, momentum], 'deep': ['name', lr, momentum]}
# for example:
# optimizer={'wide': ['SGD', 0.001, 0.1], 'deep': ['Adam', 0.001]}
# and
# model.compile(method=method, optimizer=optimizer)
model
.
compile
(
method
=
method
)
if
use_cuda
:
model
=
model
.
cuda
()
train_dataset
=
wd_dataset
[
'train_dataset'
]
model
.
fit
(
dataset
=
train_dataset
,
n_epochs
=
10
,
batch_size
=
64
)
test_dataset
=
wd_dataset
[
'test_dataset'
]
print
(
model
.
predict
(
dataset
=
test_dataset
)[:
10
])
print
(
model
.
predict_proba
(
dataset
=
test_dataset
)[:
10
])
print
(
model
.
get_embeddings
(
'education'
))
# save
MODEL_DIR
=
'model'
if
not
os
.
path
.
exists
(
MODEL_DIR
):
os
.
makedirs
(
MODEL_DIR
)
torch
.
save
(
model
.
state_dict
(),
os
.
path
.
join
(
MODEL_DIR
,
'logistic.pkl'
))
# load model
# model = WideDeep(
# wide_dim,
# embeddings_input,
# continuous_cols,
# deep_column_idx,
# hidden_layers,
# dropout,
# encoding_dict,
# n_class)
# model.compile(method=method)
# model.load_state_dict(torch.load('model/logistic.pkl'))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录