Commit 1f041d8e authored by 赵威's avatar 赵威

add prediction

parent 202e830c
...@@ -95,45 +95,49 @@ def _bytes_feature(value): ...@@ -95,45 +95,49 @@ def _bytes_feature(value):
def model_predict_diary(device_id, diary_ids, device_dict, diary_dict, predict_fn): def model_predict_diary(device_id, diary_ids, device_dict, diary_dict, predict_fn):
time_1 = timeit.default_timer() try:
device_info, diary_lst, diary_ids_res = device_diary_fe(device_id, diary_ids, device_dict, diary_dict) time_1 = timeit.default_timer()
print("predict check: " + str(len(diary_lst)) + " " + str(len(diary_ids_res))) device_info, diary_lst, diary_ids_res = device_diary_fe(device_id, diary_ids, device_dict, diary_dict)
int_columns = [ print("predict check: " + str(len(diary_lst)) + " " + str(len(diary_ids_res)))
"active_type", "active_days", "card_id", "is_pure_author", "is_have_reply", "is_have_pure_reply", "content_level", int_columns = [
"topic_num", "favor_num", "vote_num" "active_type", "active_days", "card_id", "is_pure_author", "is_have_reply", "is_have_pure_reply", "content_level",
] "topic_num", "favor_num", "vote_num"
float_columns = ["one_ctr", "three_ctr", "seven_ctr", "fifteen_ctr"] ]
str_columns = [ float_columns = ["one_ctr", "three_ctr", "seven_ctr", "fifteen_ctr"]
"device_id", "past_consume_ability_history", "potential_consume_ability_history", "price_sensitive_history", "device_fd", str_columns = [
"device_sd", "device_fs", "device_ss", "device_fp", "device_sp", "device_p", "content_fd", "content_sd", "content_fs", "device_id", "past_consume_ability_history", "potential_consume_ability_history", "price_sensitive_history", "device_fd",
"content_ss", "content_fp", "content_sp", "content_p", "fd1", "fd2", "fd3", "sd1", "sd2", "sd3", "fs1", "fs2", "fs3", "device_sd", "device_fs", "device_ss", "device_fp", "device_sp", "device_p", "content_fd", "content_sd", "content_fs",
"ss1", "ss2", "ss3", "fp1", "fp2", "fp3", "sp1", "sp2", "sp3", "p1", "p2", "p3" "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"
examples = [] ]
for diary_info in diary_lst: examples = []
tmp = {} for diary_info in diary_lst:
tmp.update(device_info) tmp = {}
tmp.update(diary_info) tmp.update(device_info)
features = {} tmp.update(diary_info)
for col in int_columns: features = {}
features[col] = _int64_feature(int(tmp[col])) for col in int_columns:
for col in float_columns: features[col] = _int64_feature(int(tmp[col]))
features[col] = _float_feature(float(tmp[col])) for col in float_columns:
for col in str_columns: features[col] = _float_feature(float(tmp[col]))
features[col] = _bytes_feature(str(tmp[col]).encode(encoding="utf-8")) for col in str_columns:
example = tf.train.Example(features=tf.train.Features(feature=features)) features[col] = _bytes_feature(str(tmp[col]).encode(encoding="utf-8"))
examples.append(example.SerializeToString()) 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)) total_1 = (timeit.default_timer() - time_1)
print("make example cost {:.5f}s".format(total_1))
time_1 = timeit.default_timer()
predictions = predict_fn({"examples": examples}) time_1 = timeit.default_timer()
res_tuple = sorted(zip(diary_ids_res, predictions["output"].tolist()), key=lambda x: x[1], reverse=True) predictions = predict_fn({"examples": examples})
res = [] res_tuple = sorted(zip(diary_ids_res, predictions["output"].tolist()), key=lambda x: x[1], reverse=True)
for (id, _) in res_tuple: res = []
res.append(int(id)) for (id, _) in res_tuple:
# print(res) res.append(int(id))
total_1 = (timeit.default_timer() - time_1) # print(res)
print("prediction cost {:.5f}s".format(total_1)) total_1 = (timeit.default_timer() - time_1)
return res print("prediction cost {:.5f}s".format(total_1))
return res
except Exception as e:
print(e)
return []
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