Commit 989a035d authored by 赵威's avatar 赵威

try timer

parent a8148ff7
...@@ -320,15 +320,15 @@ def device_diary_fe(device_id, diary_ids, device_dict, diary_dict): ...@@ -320,15 +320,15 @@ def device_diary_fe(device_id, diary_ids, device_dict, diary_dict):
device_info["device_p"] = nth_element(device_p, 0) device_info["device_p"] = nth_element(device_p, 0)
diary_lst = [] diary_lst = []
for id in diary_ids: for id in diary_ids:
tmp = diary_dict.get(id, {}).copy() diary_info = diary_dict.get(id, {}).copy()
if tmp: if diary_info:
diary_fd = tmp.get("first_demands", []) diary_fd = diary_info.get("first_demands", [])
diary_sd = tmp.get("second_demands", []) diary_sd = diary_info.get("second_demands", [])
diary_fs = tmp.get("first_solutions", []) diary_fs = diary_info.get("first_solutions", [])
diary_ss = tmp.get("second_solutions", []) diary_ss = diary_info.get("second_solutions", [])
diary_fp = tmp.get("first_positions", []) diary_fp = diary_info.get("first_positions", [])
diary_sp = tmp.get("second_positions", []) diary_sp = diary_info.get("second_positions", [])
diary_p = tmp.get("projects", []) diary_p = diary_info.get("projects", [])
common_fd = common_elements(device_fd, diary_fd) common_fd = common_elements(device_fd, diary_fd)
common_sd = common_elements(device_sd, diary_sd) common_sd = common_elements(device_sd, diary_sd)
common_fs = common_elements(device_fs, diary_fs) common_fs = common_elements(device_fs, diary_fs)
...@@ -336,35 +336,35 @@ def device_diary_fe(device_id, diary_ids, device_dict, diary_dict): ...@@ -336,35 +336,35 @@ def device_diary_fe(device_id, diary_ids, device_dict, diary_dict):
common_fp = common_elements(device_fp, diary_fp) common_fp = common_elements(device_fp, diary_fp)
common_sp = common_elements(device_sp, diary_sp) common_sp = common_elements(device_sp, diary_sp)
common_p = common_elements(device_p, diary_p) common_p = common_elements(device_p, diary_p)
tmp["content_fd"] = nth_element(diary_fd, 0) diary_info["content_fd"] = nth_element(diary_fd, 0)
tmp["content_sd"] = nth_element(diary_sd, 0) diary_info["content_sd"] = nth_element(diary_sd, 0)
tmp["content_fs"] = nth_element(diary_fs, 0) diary_info["content_fs"] = nth_element(diary_fs, 0)
tmp["content_ss"] = nth_element(diary_ss, 0) diary_info["content_ss"] = nth_element(diary_ss, 0)
tmp["content_fp"] = nth_element(diary_fp, 0) diary_info["content_fp"] = nth_element(diary_fp, 0)
tmp["content_sp"] = nth_element(diary_sp, 0) diary_info["content_sp"] = nth_element(diary_sp, 0)
tmp["content_p"] = nth_element(diary_p, 0) diary_info["content_p"] = nth_element(diary_p, 0)
tmp["fd1"] = nth_element(common_fd, 0) diary_info["fd1"] = nth_element(common_fd, 0)
tmp["fd2"] = nth_element(common_fd, 1) diary_info["fd2"] = nth_element(common_fd, 1)
tmp["fd3"] = nth_element(common_fd, 2) diary_info["fd3"] = nth_element(common_fd, 2)
tmp["sd1"] = nth_element(common_sd, 0) diary_info["sd1"] = nth_element(common_sd, 0)
tmp["sd2"] = nth_element(common_sd, 1) diary_info["sd2"] = nth_element(common_sd, 1)
tmp["sd3"] = nth_element(common_sd, 2) diary_info["sd3"] = nth_element(common_sd, 2)
tmp["fs1"] = nth_element(common_fs, 0) diary_info["fs1"] = nth_element(common_fs, 0)
tmp["fs2"] = nth_element(common_fs, 1) diary_info["fs2"] = nth_element(common_fs, 1)
tmp["fs3"] = nth_element(common_fs, 2) diary_info["fs3"] = nth_element(common_fs, 2)
tmp["ss1"] = nth_element(common_ss, 0) diary_info["ss1"] = nth_element(common_ss, 0)
tmp["ss2"] = nth_element(common_ss, 1) diary_info["ss2"] = nth_element(common_ss, 1)
tmp["ss3"] = nth_element(common_ss, 2) diary_info["ss3"] = nth_element(common_ss, 2)
tmp["fp1"] = nth_element(common_fp, 0) diary_info["fp1"] = nth_element(common_fp, 0)
tmp["fp2"] = nth_element(common_fp, 1) diary_info["fp2"] = nth_element(common_fp, 1)
tmp["fp3"] = nth_element(common_fp, 2) diary_info["fp3"] = nth_element(common_fp, 2)
tmp["sp1"] = nth_element(common_sp, 0) diary_info["sp1"] = nth_element(common_sp, 0)
tmp["sp2"] = nth_element(common_sp, 1) diary_info["sp2"] = nth_element(common_sp, 1)
tmp["sp3"] = nth_element(common_sp, 2) diary_info["sp3"] = nth_element(common_sp, 2)
tmp["p1"] = nth_element(common_p, 0) diary_info["p1"] = nth_element(common_p, 0)
tmp["p2"] = nth_element(common_p, 1) diary_info["p2"] = nth_element(common_p, 1)
tmp["p3"] = nth_element(common_p, 2) diary_info["p3"] = nth_element(common_p, 2)
diary_lst.append(tmp) diary_lst.append(diary_info)
total_1 = (timeit.default_timer() - time_1) total_1 = (timeit.default_timer() - time_1)
print("join device diary cost {:.5f}s".format(total_1)) print("join device diary cost {:.5f}s".format(total_1))
return device_info, diary_lst return device_info, diary_lst
...@@ -95,8 +95,7 @@ def _bytes_feature(value): ...@@ -95,8 +95,7 @@ def _bytes_feature(value):
return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
@numba.jit(nopython=True, parallel=True) def model_predict2(device_id, diary_ids, device_dict, diary_dict, predict_fn):
def _make_example(device_info, diary_lst):
time_1 = timeit.default_timer() time_1 = timeit.default_timer()
int_columns = [ int_columns = [
"active_type", "active_days", "card_id", "is_pure_author", "is_have_reply", "is_have_pure_reply", "content_level", "active_type", "active_days", "card_id", "is_pure_author", "is_have_reply", "is_have_pure_reply", "content_level",
...@@ -109,29 +108,98 @@ def _make_example(device_info, diary_lst): ...@@ -109,29 +108,98 @@ def _make_example(device_info, diary_lst):
"content_ss", "content_fp", "content_sp", "content_p", "fd1", "fd2", "fd3", "sd1", "sd2", "sd3", "fs1", "fs2", "fs3", "content_ss", "content_fp", "content_sp", "content_p", "fd1", "fd2", "fd3", "sd1", "sd2", "sd3", "fs1", "fs2", "fs3",
"ss1", "ss2", "ss3", "fp1", "fp2", "fp3", "sp1", "sp2", "sp3", "p1", "p2", "p3" "ss1", "ss2", "ss3", "fp1", "fp2", "fp3", "sp1", "sp2", "sp3", "p1", "p2", "p3"
] ]
device_info = device_dict.get(device_id, {}).copy()
device_fd = device_info.get("first_demands", [])
device_sd = device_info.get("second_demands", [])
device_fs = device_info.get("first_solutions", [])
device_ss = device_info.get("second_solutions", [])
device_fp = device_info.get("first_positions", [])
device_sp = device_info.get("second_positions", [])
device_p = device_info.get("projects", [])
device_info["device_fd"] = nth_element(device_fd, 0)
device_info["device_sd"] = nth_element(device_sd, 0)
device_info["device_fs"] = nth_element(device_fs, 0)
device_info["device_ss"] = nth_element(device_ss, 0)
device_info["device_fp"] = nth_element(device_fp, 0)
device_info["device_sp"] = nth_element(device_sp, 0)
device_info["device_p"] = nth_element(device_p, 0)
# diary_lst = []
examples = [] examples = []
for diary_info in diary_lst: for id in diary_ids:
tmp = {} diary_info = diary_dict.get(id, {}).copy()
tmp.update(device_info) if diary_info:
tmp.update(diary_info) diary_fd = diary_info.get("first_demands", [])
features = {} diary_sd = diary_info.get("second_demands", [])
for col in int_columns: diary_fs = diary_info.get("first_solutions", [])
features[col] = _int64_feature(int(tmp[col])) diary_ss = diary_info.get("second_solutions", [])
for col in float_columns: diary_fp = diary_info.get("first_positions", [])
features[col] = _float_feature(float(tmp[col])) diary_sp = diary_info.get("second_positions", [])
for col in str_columns: diary_p = diary_info.get("projects", [])
features[col] = _bytes_feature(tmp[col]) common_fd = common_elements(device_fd, diary_fd)
example = tf.train.Example(features=tf.train.Features(feature=features)) common_sd = common_elements(device_sd, diary_sd)
examples.append(example.SerializeToString()) common_fs = common_elements(device_fs, diary_fs)
common_ss = common_elements(device_ss, diary_ss)
common_fp = common_elements(device_fp, diary_fp)
common_sp = common_elements(device_sp, diary_sp)
common_p = common_elements(device_p, diary_p)
diary_info["content_fd"] = nth_element(diary_fd, 0)
diary_info["content_sd"] = nth_element(diary_sd, 0)
diary_info["content_fs"] = nth_element(diary_fs, 0)
diary_info["content_ss"] = nth_element(diary_ss, 0)
diary_info["content_fp"] = nth_element(diary_fp, 0)
diary_info["content_sp"] = nth_element(diary_sp, 0)
diary_info["content_p"] = nth_element(diary_p, 0)
diary_info["fd1"] = nth_element(common_fd, 0)
diary_info["fd2"] = nth_element(common_fd, 1)
diary_info["fd3"] = nth_element(common_fd, 2)
diary_info["sd1"] = nth_element(common_sd, 0)
diary_info["sd2"] = nth_element(common_sd, 1)
diary_info["sd3"] = nth_element(common_sd, 2)
diary_info["fs1"] = nth_element(common_fs, 0)
diary_info["fs2"] = nth_element(common_fs, 1)
diary_info["fs3"] = nth_element(common_fs, 2)
diary_info["ss1"] = nth_element(common_ss, 0)
diary_info["ss2"] = nth_element(common_ss, 1)
diary_info["ss3"] = nth_element(common_ss, 2)
diary_info["fp1"] = nth_element(common_fp, 0)
diary_info["fp2"] = nth_element(common_fp, 1)
diary_info["fp3"] = nth_element(common_fp, 2)
diary_info["sp1"] = nth_element(common_sp, 0)
diary_info["sp2"] = nth_element(common_sp, 1)
diary_info["sp3"] = nth_element(common_sp, 2)
diary_info["p1"] = nth_element(common_p, 0)
diary_info["p2"] = nth_element(common_p, 1)
diary_info["p3"] = nth_element(common_p, 2)
# diary_lst.append(diary_info)
tmp = {}
tmp.update(device_info)
tmp.update(diary_info)
features = {}
for col in int_columns:
features[col] = _int64_feature(int(tmp[col]))
for col in float_columns:
features[col] = _float_feature(float(tmp[col]))
for col in str_columns:
features[col] = _bytes_feature(tmp[col])
example = tf.train.Example(features=tf.train.Features(feature=features))
examples.append(example.SerializeToString())
# tmp = {}
# tmp.update(device_info)
# tmp.update(diary_info)
# features = {}
# for col in int_columns:
# features[col] = _int64_feature(int(tmp[col]))
# for col in float_columns:
# features[col] = _float_feature(float(tmp[col]))
# for col in str_columns:
# features[col] = _bytes_feature(tmp[col])
# example = tf.train.Example(features=tf.train.Features(feature=features))
# examples.append(example.SerializeToString())
total_1 = (timeit.default_timer() - time_1) total_1 = (timeit.default_timer() - time_1)
print("make example cost {:.5f}s".format(total_1)) print("make example cost {:.5f}s".format(total_1))
return examples
def model_predict2(device_id, diary_ids, device_dict, diary_dict, predict_fn):
device_info, diary_lst = device_diary_fe(device_id, diary_ids, device_dict, diary_dict)
examples = _make_example(device_info, diary_lst)
time_1 = timeit.default_timer() time_1 = timeit.default_timer()
predictions = predict_fn({"examples": examples}) predictions = predict_fn({"examples": examples})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment