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):
device_info["device_p"] = nth_element(device_p, 0)
diary_lst = []
for id in diary_ids:
tmp = diary_dict.get(id, {}).copy()
if tmp:
diary_fd = tmp.get("first_demands", [])
diary_sd = tmp.get("second_demands", [])
diary_fs = tmp.get("first_solutions", [])
diary_ss = tmp.get("second_solutions", [])
diary_fp = tmp.get("first_positions", [])
diary_sp = tmp.get("second_positions", [])
diary_p = tmp.get("projects", [])
diary_info = diary_dict.get(id, {}).copy()
if diary_info:
diary_fd = diary_info.get("first_demands", [])
diary_sd = diary_info.get("second_demands", [])
diary_fs = diary_info.get("first_solutions", [])
diary_ss = diary_info.get("second_solutions", [])
diary_fp = diary_info.get("first_positions", [])
diary_sp = diary_info.get("second_positions", [])
diary_p = diary_info.get("projects", [])
common_fd = common_elements(device_fd, diary_fd)
common_sd = common_elements(device_sd, diary_sd)
common_fs = common_elements(device_fs, diary_fs)
......@@ -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_sp = common_elements(device_sp, diary_sp)
common_p = common_elements(device_p, diary_p)
tmp["content_fd"] = nth_element(diary_fd, 0)
tmp["content_sd"] = nth_element(diary_sd, 0)
tmp["content_fs"] = nth_element(diary_fs, 0)
tmp["content_ss"] = nth_element(diary_ss, 0)
tmp["content_fp"] = nth_element(diary_fp, 0)
tmp["content_sp"] = nth_element(diary_sp, 0)
tmp["content_p"] = nth_element(diary_p, 0)
tmp["fd1"] = nth_element(common_fd, 0)
tmp["fd2"] = nth_element(common_fd, 1)
tmp["fd3"] = nth_element(common_fd, 2)
tmp["sd1"] = nth_element(common_sd, 0)
tmp["sd2"] = nth_element(common_sd, 1)
tmp["sd3"] = nth_element(common_sd, 2)
tmp["fs1"] = nth_element(common_fs, 0)
tmp["fs2"] = nth_element(common_fs, 1)
tmp["fs3"] = nth_element(common_fs, 2)
tmp["ss1"] = nth_element(common_ss, 0)
tmp["ss2"] = nth_element(common_ss, 1)
tmp["ss3"] = nth_element(common_ss, 2)
tmp["fp1"] = nth_element(common_fp, 0)
tmp["fp2"] = nth_element(common_fp, 1)
tmp["fp3"] = nth_element(common_fp, 2)
tmp["sp1"] = nth_element(common_sp, 0)
tmp["sp2"] = nth_element(common_sp, 1)
tmp["sp3"] = nth_element(common_sp, 2)
tmp["p1"] = nth_element(common_p, 0)
tmp["p2"] = nth_element(common_p, 1)
tmp["p3"] = nth_element(common_p, 2)
diary_lst.append(tmp)
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)
total_1 = (timeit.default_timer() - time_1)
print("join device diary cost {:.5f}s".format(total_1))
return device_info, diary_lst
......@@ -95,8 +95,7 @@ def _bytes_feature(value):
return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
@numba.jit(nopython=True, parallel=True)
def _make_example(device_info, diary_lst):
def model_predict2(device_id, diary_ids, device_dict, diary_dict, predict_fn):
time_1 = timeit.default_timer()
int_columns = [
"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):
"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"
]
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 = []
for diary_info in diary_lst:
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())
for id in diary_ids:
diary_info = diary_dict.get(id, {}).copy()
if diary_info:
diary_fd = diary_info.get("first_demands", [])
diary_sd = diary_info.get("second_demands", [])
diary_fs = diary_info.get("first_solutions", [])
diary_ss = diary_info.get("second_solutions", [])
diary_fp = diary_info.get("first_positions", [])
diary_sp = diary_info.get("second_positions", [])
diary_p = diary_info.get("projects", [])
common_fd = common_elements(device_fd, diary_fd)
common_sd = common_elements(device_sd, diary_sd)
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)
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()
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