From d5407da857eb2f90a9cd921a68ed2be04f4f72ce Mon Sep 17 00:00:00 2001 From: louxuezheng Date: Sat, 27 Jun 2020 18:49:11 +0800 Subject: [PATCH 1/3] add estimator serving demo --- .../estimator_serving/feat_index_dict.json | 1 + examples/estimator_serving/max_min.txt | 14 ++++++++++++++ .../serving_raw/1593253204/saved_model.pb | Bin 0 -> 1978309 bytes .../variables/variables.data-00000-of-00001 | Bin 0 -> 172600 bytes .../1593253204/variables/variables.index | Bin 0 -> 3383 bytes 5 files changed, 15 insertions(+) create mode 100644 examples/estimator_serving/feat_index_dict.json create mode 100644 examples/estimator_serving/max_min.txt create mode 100644 examples/estimator_serving/serving_raw/1593253204/saved_model.pb create mode 100644 examples/estimator_serving/serving_raw/1593253204/variables/variables.data-00000-of-00001 create mode 100644 examples/estimator_serving/serving_raw/1593253204/variables/variables.index diff --git a/examples/estimator_serving/feat_index_dict.json b/examples/estimator_serving/feat_index_dict.json new file mode 100644 index 00000000..1f4ea8f5 --- /dev/null +++ b/examples/estimator_serving/feat_index_dict.json @@ -0,0 +1 @@ +{"C1": {"05db9164": 0, "09ca0b81": 1, "0e78bd46": 2, "17f69355": 3, "241546e0": 4, "2d4ea12b": 5, "39af2607": 6, "3b65d647": 7, "52f1e825": 8, "5a9ed9b0": 9, "5bfa8ab5": 10, "68fd1e64": 11, "75ac2fe6": 12, "7e5c2ff4": 13, "87552397": 14, "87773c45": 15, "8cf07265": 16, "98237733": 17, "9a89b36c": 18, "ae82ea21": 19, "be30ca83": 20, "be589b51": 21, "da4eff0f": 22, "de4dac42": 23, "f434fac1": 24, "f473b8dc": 25, "fc9c62bb": 26}, "C2": {"0468d672": 0, "04e09220": 1, "06174070": 2, "064c8f31": 3, "08d6d899": 4, "09e68b86": 5, "0a519c5c": 6, "0aadb108": 7, "0b8e9caf": 8, "0c0567c2": 9, "1cfdf714": 10, "207b2d81": 11, "26ece8a8": 12, "287130e0": 13, "2a69d406": 14, "2ae0a573": 15, "2c8c5f5d": 16, "2eb7b10e": 17, "38a947a1": 18, "38d50e09": 19, "39dfaa0d": 20, "3df44d94": 21, "3e4b7926": 22, "403ea497": 23, "404660bb": 24, "40ed0c67": 25, "421b43cd": 26, "4322636e": 27, "46bbf321": 28, "4c2bc594": 29, "4f25e98b": 30, "512fdf0c": 31, "537e899b": 32, "558b4efb": 33, "55e0a784": 34, "58e67aaf": 35, "5dac953d": 36, "62e9e9bf": 37, "6887a43c": 38, "68b3edbf": 39, "6e638bbc": 40, "6f609dc9": 41, "71ca0a25": 42, "73b37f46": 43, "78ccd99e": 44, "8084ee93": 45, "80e26c9b": 46, "84b4e42f": 47, "876465ad": 48, "8947f767": 49, "89ddfee8": 50, "8ab240be": 51, "8b0005b7": 52, "8db5bc37": 53, "8f5b4275": 54, "90081f33": 55, "942f9a8d": 56, "95e2d337": 57, "9819deea": 58, "9a82ab91": 59, "9b25e48b": 60, "a0e12995": 61, "a5b69ae3": 62, "a8da270e": 63, "aa8fcc21": 64, "ae46a29d": 65, "b0d4a6f6": 66, "b26462db": 67, "b46aceb6": 68, "b7ca2abd": 69, "c41a84c8": 70, "c44e8a72": 71, "c5c1d6ae": 72, "c5e4f7c9": 73, "c5fe64d9": 74, "d4bd9877": 75, "d57c0709": 76, "d7988e72": 77, "d833535f": 78, "d8fc04df": 79, "d97d4ce8": 80, "dde11b16": 81, "e112a9de": 82, "e3a0dc66": 83, "e5fb1af3": 84, "e77e5e6e": 85, "e9b8a266": 86, "ea3a5818": 87, "ed7b1c58": 88, "ef69887a": 89, "efb7db0e": 90, "f0cf0024": 91}, "C3": {"-1": 0, "00d3cdb7": 1, "01a0648b": 2, "01ac13ea": 3, "022a0b3c": 4, "0271c22e": 5, "027b4cc5": 6, "02cf9876": 7, "03689820": 8, "0739daa8": 9, "0b2640f7": 10, "0b793d71": 11, "0c7bb149": 12, "0d15d9b5": 13, "0d71b822": 14, "0f09a700": 15, "104c93d5": 16, "10ee5afb": 17, "13193952": 18, "13cd0697": 19, "145f2f75": 20, "15363e12": 21, "1678e0d8": 22, "1b5e2c32": 23, "20fb5e45": 24, "223b0e16": 25, "2273663d": 26, "25111132": 27, "29dbbee7": 28, "2b280564": 29, "2ba709bb": 30, "2cbec47f": 31, "2d8004c4": 32, "33ebdbb6": 33, "374195a1": 34, "378112d3": 35, "38610f2f": 36, "3a3d6eeb": 37, "3cb0ff62": 38, "3f55fb72": 39, "3f7f3d24": 40, "3f850fa0": 41, "3fea0364": 42, "40361716": 43, "4255f8fd": 44, "4470baf4": 45, "44e7b8ec": 46, "45f68c2a": 47, "4993b2b2": 48, "4e1c9eda": 49, "5037b88e": 50, "50a6bc33": 51, "5492524f": 52, "55f298ba": 53, "57231f4a": 54, "58ca7e87": 55, "598b72ce": 56, "5b54e5b4": 57, "5be9b239": 58, "5d076085": 59, "5d0ec1e8": 60, "5e25fa67": 61, "5f8d9359": 62, "60c37737": 63, "619e87b2": 64, "61b8caf0": 65, "628b07b0": 66, "62acd884": 67, "6392b1c1": 68, "6813d33b": 69, "6858baef": 70, "695a85e0": 71, "69b028e3": 72, "6bbe880c": 73, "6d1384bc": 74, "6ef2aa66": 75, "700014ea": 76, "70168f62": 77, "7442ec70": 78, "761d2b40": 79, "770451b6": 80, "771a1642": 81, "77f2f2e5": 82, "79bdb97a": 83, "7e1ad1fe": 84, "7e4ea1b2": 85, "7edab412": 86, "7ee60f5f": 87, "7fd859b3": 88, "8018e37d": 89, "840eeb3a": 90, "8530c58f": 91, "88290645": 92, "8b14bdd6": 93, "8b376137": 94, "909286bb": 95, "9143c832": 96, "948ee031": 97, "95e13fd4": 98, "97d1681e": 99, "98351ee6": 100, "98bb788f": 101, "99815367": 102, "9b792af9": 103, "9b953c56": 104, "9d427ddf": 105, "9dd3c4fc": 106, "9dfde63d": 107, "9ea04474": 108, "a17519ab": 109, "a2b48926": 110, "a3829614": 111, "a55127b0": 112, "a68b0bcf": 113, "aa8c1539": 114, "ac203f6f": 115, "acbabfa5": 116, "ad4b77ff": 117, "af21d90e": 118, "af5655e7": 119, "b009d929": 120, "b00d1501": 121, "b063fe4e": 122, "b0874fd0": 123, "b1b6f323": 124, "b1ecc6c4": 125, "b264d69e": 126, "b2de8002": 127, "b3693f43": 128, "b3ee24fe": 129, "b87cffc0": 130, "ba1947d0": 131, "bd4d1b8d": 132, "be0a348d": 133, "be3b6a18": 134, "bf05882d": 135, "bf30cf68": 136, "c23785fe": 137, "c5d94b65": 138, "c6616b04": 139, "c725873a": 140, "c798ded6": 141, "c8b80f97": 142, "cce54c2c": 143, "cd82408a": 144, "cedcacac": 145, "d032c263": 146, "d125aecd": 147, "d1ffd05c": 148, "d627c43e": 149, "da3ad2bd": 150, "da89f77a": 151, "dad8b3db": 152, "db151f8b": 153, "dd8e6407": 154, "e007dfac": 155, "e346a5fd": 156, "ea997bbe": 157, "eb08d440": 158, "f1397040": 159, "f153af65": 160, "f1a544c6": 161, "f25edca2": 162, "f5cdf14a": 163, "f652979e": 164, "f86649de": 165, "fc1cad4b": 166, "fc25ffd0": 167, "fcae8bfa": 168, "fd22e418": 169, "fda0b584": 170, "fdd14ae2": 171}, "C4": {"-1": 0, "003ceb8c": 1, "0676a23d": 2, "06b1cf6e": 3, "09003f7b": 4, "097de257": 5, "13508380": 6, "15c721d8": 7, "187dc42d": 8, "19ae4fbd": 9, "1d29846e": 10, "1de19bc2": 11, "20af9140": 12, "21817e80": 13, "22504558": 14, "252734c9": 15, "2628b8d6": 16, "270b5720": 17, "28d2973d": 18, "29998ed1": 19, "2b0aadf8": 20, "2e946ee2": 21, "311f127a": 22, "32a55192": 23, "335e428a": 24, "352cefe6": 25, "36375a46": 26, "37ee624b": 27, "38aca36b": 28, "39547932": 29, "39cc9792": 30, "3b989466": 31, "3beb8147": 32, "3bf2df8b": 33, "3c7eb23c": 34, "3db5e097": 35, "3e2bfbda": 36, "3f647607": 37, "3fb81b62": 38, "40ed41e5": 39, "418ae7fb": 40, "46ec0a38": 41, "49c94103": 42, "4b972461": 43, "4badfc0c": 44, "4e1c036b": 45, "4eadb673": 46, "4fbef8bb": 47, "560f248f": 48, "585ab217": 49, "5b392af8": 50, "5cc8f91d": 51, "5de245c7": 52, "5dff9b29": 53, "5ef5cf67": 54, "5f379ae0": 55, "62169fb6": 56, "631a0f79": 57, "657dc3b9": 58, "67dd8a70": 59, "684abf7b": 60, "6e8c7c0e": 61, "6f5d5092": 62, "72bea89f": 63, "74ce146b": 64, "7501d94a": 65, "759c4a2e": 66, "771966f0": 67, "7736c782": 68, "77b99936": 69, "7967fcf5": 70, "7be07df9": 71, "7be47200": 72, "811ce8e8": 73, "813cb08c": 74, "82a61820": 75, "85dd697c": 76, "862b5ba0": 77, "8a2b280f": 78, "8a77aa30": 79, "8b7d76a3": 80, "8c8a4c47": 81, "8eb89744": 82, "90044821": 83, "90b69619": 84, "91e6318a": 85, "991a22ae": 86, "9ab05b8f": 87, "9affccc2": 88, "9b17f367": 89, "9c32fadc": 90, "9c65ce26": 91, "9c6d05a0": 92, "9c9a6068": 93, "9dde01fd": 94, "9df780c1": 95, "9e3f04df": 96, "a09fab49": 97, "a1e6a194": 98, "a35517fb": 99, "a95c56ca": 100, "aafb54fa": 101, "abfc27b2": 102, "ace52998": 103, "ad5ffc6b": 104, "ae59cd56": 105, "b0ed6de7": 106, "b63c0277": 107, "b696e406": 108, "b7ab56a2": 109, "bb8645c3": 110, "bc17b20f": 111, "bd6ffe0f": 112, "bdbe850d": 113, "be4cb064": 114, "bebc14b3": 115, "bfe24cb7": 116, "c18be181": 117, "c194aaab": 118, "c38a1d7d": 119, "c5699aad": 120, "c7043c4b": 121, "ca55061c": 122, "caa16f04": 123, "ce831e6d": 124, "cfc23926": 125, "d0189e5a": 126, "d13862c2": 127, "d16679b9": 128, "d4125c6f": 129, "d502349a": 130, "d6b6e0bf": 131, "d8660950": 132, "db4eb846": 133, "db781543": 134, "dc0a11c7": 135, "dd47ba3b": 136, "e0a2ecca": 137, "e0e934af": 138, "e63708e9": 139, "e6996139": 140, "eabe170f": 141, "eb45e6e4": 142, "f1b645fc": 143, "f1d06e8a": 144, "f2159098": 145, "f56b7dd5": 146, "f56f6045": 147, "f6dbd8fb": 148, "f7263320": 149, "f888df5a": 150, "f922efad": 151, "f9a7e394": 152, "f9e8a6fb": 153, "feb6eb1a": 154, "ffacf4e8": 155, "ffe40d5f": 156}, "C5": {"0942e0a7": 0, "25c83c98": 1, "307e775a": 2, "30903e74": 3, "384874ce": 4, "43b19349": 5, "4cf72387": 6, "4ea20c7d": 7, "5a3e1872": 8, "a9411994": 9, "b0530c50": 10, "db679829": 11}, "C6": {"-1": 0, "13718bbd": 1, "3bf701e7": 2, "6f6d9be8": 3, "7e0ccccf": 4, "fbad5c96": 5, "fe6b92e5": 6}, "C7": {"00dd27a6": 0, "01620311": 1, "02914429": 2, "04277bf9": 3, "0492c809": 4, "07d75b52": 5, "0bdc3959": 6, "0c41b6a1": 7, "0d00feb3": 8, "0d15142a": 9, "0d339a25": 10, "1171550e": 11, "122c542a": 12, "124131fa": 13, "133643ef": 14, "14ba4967": 15, "15ce37bc": 16, "16401b7d": 17, "17c22666": 18, "17cdc396": 19, "19672560": 20, "1971812a": 21, "197b4575": 22, "19d92932": 23, "1c63b114": 24, "1c86e0eb": 25, "21c0ea1a": 26, "24c48926": 27, "2555b4d9": 28, "26817995": 29, "271190b7": 30, "2773eaab": 31, "295cc387": 32, "2a37bb01": 33, "2aef1419": 34, "2b3ce8b7": 35, "2be44e4e": 36, "2e62d414": 37, "2e8a689b": 38, "315c76f3": 39, "32da4b59": 40, "33b15f2c": 41, "33cca6fa": 42, "34cbc0af": 43, "368f84ee": 44, "36b796aa": 45, "372a0c4c": 46, "38eb9cf4": 47, "3a7402e7": 48, "3babeb61": 49, "3baecfcb": 50, "3d63f4e6": 51, "3f4ec687": 52, "412cb2ce": 53, "4157815a": 54, "41e1828d": 55, "468a0854": 56, "47aa6d2e": 57, "49b74ebc": 58, "4a6c02fb": 59, "4aa938fc": 60, "4d9d55ae": 61, "4f900c22": 62, "4fb73f5f": 63, "50a5390e": 64, "53e14bd5": 65, "53ef84c0": 66, "555d7949": 67, "559eb1e1": 68, "55fc227e": 69, "5a103f30": 70, "5aef82b1": 71, "5b18f3d9": 72, "5d7d417f": 73, "5e4f7d2b": 74, "6005554a": 75, "60d4eb86": 76, "61beb1aa": 77, "622305e6": 78, "63b7fcf7": 79, "65c53f25": 80, "675e81f6": 81, "67b7679f": 82, "6978304f": 83, "6a858837": 84, "6ad82e7a": 85, "6b406125": 86, "6c338953": 87, "6cdb3998": 88, "6d51a5b0": 89, "6da2fbd6": 90, "71c23d74": 91, "71ccc25b": 92, "7227c706": 93, "73e2fc5e": 94, "788ff59f": 95, "7925e09b": 96, "7f2c5a6e": 97, "81bb0302": 98, "82cfb145": 99, "82f666b6": 100, "84c427f0": 101, "85e1a170": 102, "863329da": 103, "86651165": 104, "86b374da": 105, "877d7f71": 106, "879ccac6": 107, "88002ee1": 108, "88afd773": 109, "8a850658": 110, "8f572b5e": 111, "8f801a1a": 112, "91282309": 113, "92ce5a7d": 114, "95402f9a": 115, "963d99df": 116, "968a6688": 117, "9b98e9fc": 118, "9d8d7034": 119, "9e8dab66": 120, "9ec884dc": 121, "9ff9bbde": 122, "a1eeac3d": 123, "a2f7459e": 124, "a5a83bdd": 125, "a6624a99": 126, "a7565058": 127, "a90a99c5": 128, "aafae983": 129, "ad82323c": 130, "adbcc874": 131, "ade953a9": 132, "ae1dfa39": 133, "afa309bd": 134, "b00f5963": 135, "b01d50d5": 136, "b28fa88b": 137, "b3a5258d": 138, "b647358a": 139, "b72ec13d": 140, "b87f4a4a": 141, "bc324536": 142, "bf115338": 143, "c1e20400": 144, "c642e324": 145, "c78204a1": 146, "c96de117": 147, "ca4fd8f8": 148, "cd846c62": 149, "cd98cc3d": 150, "cdc0ad95": 151, "d01ba955": 152, "d0519bab": 153, "d18f8f99": 154, "d2bfca2c": 155, "d385ea68": 156, "d55d70ca": 157, "d7f3ff9f": 158, "d9aa9d97": 159, "d9f4e70f": 160, "dc7659bd": 161, "dcab49d9": 162, "df5c2d18": 163, "e14874c9": 164, "e24d7cb8": 165, "e2de05d6": 166, "e2ec9176": 167, "e3b8f237": 168, "e465eb54": 169, "e746fe19": 170, "e7698644": 171, "e807f153": 172, "ead731f4": 173, "ec1a1856": 174, "ed0714a0": 175, "f14f1abf": 176, "f33e4fa1": 177, "f74ed3c0": 178, "f819e175": 179, "fcf0132a": 180, "fe4dce68": 181, "ff08f605": 182}, "C8": {"062b5529": 0, "0b153874": 1, "1f89b562": 2, "25239412": 3, "37e4aa92": 4, "51d76abe": 5, "56563555": 6, "5b392875": 7, "64523cfa": 8, "66f29b89": 9, "7b6fecd5": 10, "966033bc": 11, "985e3fcb": 12, "a61cc0ef": 13, "a6d156f4": 14, "c8ddd494": 15, "d7c4a8f5": 16, "e8663cb1": 17, "f0e5818a": 18}, "C9": {"7cc72ec2": 0, "a73ee510": 1}, "C10": {"00f2b452": 0, "012f45e7": 1, "03e48276": 2, "0466803a": 3, "07c7b3f7": 4, "0e9ead52": 5, "0eca1729": 6, "0f6ee8ce": 7, "12bb8262": 8, "13ba96b0": 9, "15fa156b": 10, "1722d4c8": 11, "18e09007": 12, "19feb952": 13, "1a428761": 14, "1ce1e29d": 15, "1d56e466": 16, "22a99f9d": 17, "23724df8": 18, "23de5a4a": 19, "2462946f": 20, "25e9e422": 21, "267caf03": 22, "27f4bf82": 23, "2a47dab8": 24, "2bf8bed1": 25, "2e48a61d": 26, "3094253e": 27, "34dd9626": 28, "39046df2": 29, "3b08e48b": 30, "451bd4e4": 31, "47e01053": 32, "493b74f2": 33, "49d1ad89": 34, "49d5fa15": 35, "4b415bb3": 36, "4b8a7639": 37, "4c89c3af": 38, "4e979b5e": 39, "4ea0d483": 40, "4f1c6ae7": 41, "50c56209": 42, "5162b19c": 43, "51e04895": 44, "534fc986": 45, "567ba666": 46, "56c80038": 47, "56ef22e9": 48, "575cd9b2": 49, "5a01afad": 50, "5ba575e7": 51, "5ea6fa93": 52, "5fcee6b1": 53, "631ddef6": 54, "64145819": 55, "66c281d9": 56, "67eea4ef": 57, "6c47047a": 58, "6f07d986": 59, "6f0b6a04": 60, "75d852fc": 61, "78d5c363": 62, "78ed0c4d": 63, "7cda6c86": 64, "7fdb06fe": 65, "801e8634": 66, "8627508e": 67, "897188be": 68, "8a99abc1": 69, "8b7e0638": 70, "8c8662e4": 71, "8f48ce11": 72, "903f1f14": 73, "94e68c1d": 74, "97d3ddaa": 75, "98bd7a24": 76, "98d5faa2": 77, "995c2a7f": 78, "9b8e7680": 79, "9ca0fba4": 80, "9d4b7dce": 81, "9ffc445a": 82, "a08eee5a": 83, "a1ee64a6": 84, "a5270a71": 85, "a8d1ae09": 86, "aa6da1ef": 87, "aa91245c": 88, "ab9456b4": 89, "ab9e9acf": 90, "ac473633": 91, "ac82cac0": 92, "acce978c": 93, "aed3d80e": 94, "aed8755c": 95, "afa26c81": 96, "afc4d756": 97, "b0c25211": 98, "b1442b2a": 99, "b173a655": 100, "b1aa986c": 101, "b393caa5": 102, "b3d657b8": 103, "b6900243": 104, "bac95df6": 105, "bdfd8a02": 106, "c5fe5cb9": 107, "c6c8dd7c": 108, "c9ac91cb": 109, "cf500eab": 110, "cfa407de": 111, "d9b71390": 112, "da272362": 113, "dc790dda": 114, "dcbc7c2b": 115, "e5330e23": 116, "e6003298": 117, "e70742b0": 118, "e851ff7b": 119, "e89812b3": 120, "e8e8c8ac": 121, "e8f7c7e8": 122, "ec4d75ea": 123, "efea433b": 124, "eff5602f": 125, "f0c8b1be": 126, "f1311559": 127, "f1b39deb": 128, "f3b83678": 129, "f6540b40": 130, "f6c6d9f8": 131, "f6f942d1": 132, "f710483a": 133, "f8f0e86f": 134, "f9065d00": 135, "f918493f": 136, "fb999b75": 137, "fbbf2c95": 138, "fbc2dc95": 139, "ff4776d6": 140, "ff5a1549": 141}, "C11": {"010265ac": 0, "01a88896": 1, "031ba22d": 2, "03458ded": 3, "06474f17": 4, "07678d3e": 5, "0ad37b4b": 6, "0bc63bd0": 7, "0cb221d0": 8, "0e4ebdac": 9, "0ec1e215": 10, "1054ae5c": 11, "159499d1": 12, "15eced00": 13, "16faa766": 14, "1aa6cf31": 15, "1cba690a": 16, "20ec800a": 17, "258875ea": 18, "2591ca7a": 19, "25f4f871": 20, "26a64614": 21, "278636c9": 22, "29473fc8": 23, "29e4ad33": 24, "2bcfb78f": 25, "2d9eed4d": 26, "2e15139e": 27, "2e9d5aa6": 28, "30b2a438": 29, "319687c9": 30, "3547565f": 31, "364e8b48": 32, "38914a66": 33, "39dd23e7": 34, "3f31bb3e": 35, "41516dc9": 36, "419d31d4": 37, "41b3f655": 38, "434d6c13": 39, "4352b29b": 40, "46031dab": 41, "4a77ddca": 42, "4ba74619": 43, "4e46b019": 44, "51ef0313": 45, "52d28861": 46, "5307d8e2": 47, "55065437": 48, "553ebda3": 49, "565788d0": 50, "5874c9c9": 51, "5b906b78": 52, "5bd8a4ae": 53, "5cab60cb": 54, "5f5e6091": 55, "606866a9": 56, "60a1c175": 57, "6153cf57": 58, "61af8052": 59, "61ba19ac": 60, "636405ac": 61, "640d8b63": 62, "643327e3": 63, "67841877": 64, "68357db6": 65, "6939835e": 66, "69926409": 67, "69afd526": 68, "6a447eb3": 69, "6c27619d": 70, "6dc69f41": 71, "6e647667": 72, "6fc6ad29": 73, "7056d78a": 74, "720446f5": 75, "7373475d": 76, "755e4a50": 77, "77212bd7": 78, "779482a8": 79, "78f92234": 80, "7940fc2a": 81, "7b5deffb": 82, "7bbe6c06": 83, "7c4f062c": 84, "7ca25fd2": 85, "7d5ece85": 86, "7d756b25": 87, "7e2c5c15": 88, "7e40f08a": 89, "7f8ffe57": 90, "7fee217f": 91, "81a23494": 92, "82af9502": 93, "8487a168": 94, "84bc66d0": 95, "88196a93": 96, "88731e13": 97, "8b92652b": 98, "91875c79": 99, "91e8fc27": 100, "922bbb91": 101, "9625b211": 102, "96a54d80": 103, "98579192": 104, "9ba53fcc": 105, "9c9d4957": 106, "9cf09d42": 107, "9e511730": 108, "9ee336c5": 109, "9f0003f4": 110, "9f7c4fc1": 111, "a0060bca": 112, "a04e019f": 113, "a2c1d2d9": 114, "a4ea009a": 115, "a60de4e5": 116, "a7b606c4": 117, "a89c45cb": 118, "ad2bc6f4": 119, "ad757a5a": 120, "ae4c531b": 121, "af6a4ffc": 122, "b26d847d": 123, "b4bb4248": 124, "b6358cf2": 125, "b7094596": 126, "b85b416c": 127, "b91c2548": 128, "b9ec9192": 129, "ba0f9e8a": 130, "bc862fb6": 131, "bffe9c30": 132, "c0edaa76": 133, "c19406bc": 134, "c1ee56d0": 135, "c21c44c8": 136, "c30e7b00": 137, "c3a20c8d": 138, "c4adf918": 139, "c6cb726f": 140, "c804061c": 141, "c82f1813": 142, "cd1b7031": 143, "cd3a0eb4": 144, "d027c970": 145, "d21494f8": 146, "d54a5851": 147, "d650f1bd": 148, "d79cc967": 149, "d8d7567b": 150, "d9b1e3ff": 151, "da89cb9b": 152, "dcc84468": 153, "df7e8e0b": 154, "e0c3cae0": 155, "e51ddf94": 156, "e90cbbe1": 157, "e931c5cd": 158, "e9c32980": 159, "eb9eb939": 160, "ec88dd34": 161, "ee26f284": 162, "f161ec47": 163, "f1b78ab4": 164, "f25fe7e9": 165, "f295b28a": 166, "f697a983": 167, "f72b4bd1": 168, "f89fe102": 169, "f9d0f35e": 170, "feb49a68": 171, "ff78732c": 172}, "C12": {"-1": 0, "05e68866": 1, "07cecd0e": 2, "093a009d": 3, "0a02e48e": 4, "0b7afe9e": 5, "0c87b3e9": 6, "0cdb9a18": 7, "11fcf7fa": 8, "1310a7dd": 9, "153ff04a": 10, "156f99ef": 11, "167ba71f": 12, "16a886e7": 13, "18917580": 14, "1b2022a0": 15, "21a23bfe": 16, "22cad86a": 17, "233fde4c": 18, "23bc90a1": 19, "2436ff75": 20, "252162ec": 21, "25644e7d": 22, "28283f53": 23, "2849c511": 24, "2a064dba": 25, "2d15871c": 26, "2d72bfb9": 27, "2ea11a49": 28, "30ed85b5": 29, "317bfd7d": 30, "3263408b": 31, "3317996d": 32, "33c282f5": 33, "33ec1af8": 34, "34a238e0": 35, "3563ab62": 36, "359d194a": 37, "38176faa": 38, "3a802941": 39, "3b917db0": 40, "3c5900b5": 41, "3cd57e51": 42, "422e8212": 43, "424ba327": 44, "42bee2f2": 45, "4640585e": 46, "49507531": 47, "49a5dd4f": 48, "49fee879": 49, "4baf63a1": 50, "4bba7327": 51, "4df84614": 52, "4ea4e9d5": 53, "506bb280": 54, "526eb908": 55, "538a49e7": 56, "539c5644": 57, "553e02c3": 58, "59a625a9": 59, "5d84eb4a": 60, "5e76bfca": 61, "5ea407f3": 62, "617c70e9": 63, "61ea5878": 64, "624029b0": 65, "63314ad3": 66, "651d80c6": 67, "6532318c": 68, "6536f6f8": 69, "654bb16a": 70, "6647ec34": 71, "67b31aac": 72, "680d7261": 73, "6aa4c9a8": 74, "6aaba33c": 75, "6bca71b1": 76, "704629a2": 77, "7161e106": 78, "72a52d4c": 79, "733bbdf2": 80, "74138b6d": 81, "752343e3": 82, "75c79158": 83, "76517c94": 84, "765cb3ea": 85, "77f29381": 86, "78a16776": 87, "79b98d3d": 88, "7ac672aa": 89, "7c5cd1c7": 90, "7e7a6264": 91, "7e98747a": 92, "8065cc64": 93, "834b5edc": 94, "842839b9": 95, "887a0c20": 96, "8882c6cd": 97, "8a433ec1": 98, "8cdc4941": 99, "8d2c704a": 100, "8d526153": 101, "8ebd48c3": 102, "8f1a16da": 103, "8fe001f4": 104, "9148b680": 105, "91f87a19": 106, "94a1cc80": 107, "96fa9c01": 108, "975f89b0": 109, "99ec4e40": 110, "9b665b9c": 111, "9c841b74": 112, "9da0a604": 113, "9e82f486": 114, "9f32b866": 115, "9ffdd484": 116, "a0015d5d": 117, "a2f4e8b5": 118, "a4425bd8": 119, "a4b73157": 120, "a5ab10e6": 121, "a5b0521a": 122, "a66cfe4b": 123, "ab1307ec": 124, "ad46dc69": 125, "ad972965": 126, "ae1bb660": 127, "af6ad6b6": 128, "b345f76c": 129, "b99ddbc8": 130, "b9b3b7ef": 131, "bb669e25": 132, "bdf9cff8": 133, "beb94e00": 134, "c0d8d575": 135, "c35b992b": 136, "c3cdaf85": 137, "c47972c1": 138, "c492212b": 139, "cc22efeb": 140, "cc606cbe": 141, "cf724373": 142, "d06dc48e": 143, "d1fb0874": 144, "d286aff3": 145, "d28c687a": 146, "d63df4e6": 147, "d7cd5e08": 148, "d8acd6f9": 149, "d8c29807": 150, "de2ecc9c": 151, "dfbb09fb": 152, "e00462bb": 153, "e0d76380": 154, "e5b118b4": 155, "e802f466": 156, "eb43b195": 157, "eb83af8a": 158, "ed5cfa27": 159, "f0c1019c": 160, "f21f7d11": 161, "f24b551c": 162, "f6148255": 163, "f6d35a1e": 164, "f993725b": 165, "f9bf526c": 166, "fa5eca9d": 167, "fb991bf5": 168, "ffcedb7a": 169}, "C13": {"00e20e7b": 0, "0159bf9f": 1, "01c2bbc7": 2, "01f32ac8": 3, "034e5f3b": 4, "04e4a7e0": 5, "07a906b4": 6, "07c072b7": 7, "07fdb6cc": 8, "08775c1b": 9, "08961fd0": 10, "094e10ad": 11, "0a9ac04c": 12, "0e5bc979": 13, "115d29f4": 14, "1211c647": 15, "12880350": 16, "165642be": 17, "176d07bc": 18, "18041128": 19, "18a5e4b8": 20, "1aa94af3": 21, "1cc9ac51": 22, "1d0f2da8": 23, "1e18519e": 24, "1e9339bc": 25, "1f9d2c38": 26, "22d23aac": 27, "269889be": 28, "2723b688": 29, "2a1579a2": 30, "2b54e95d": 31, "2b9fb512": 32, "2ec4b007": 33, "2f3ee7fb": 34, "2fc3058f": 35, "31b42deb": 36, "34cbb1bc": 37, "34fc0029": 38, "3516f6e6": 39, "377af8aa": 40, "3796b047": 41, "38016f21": 42, "39ccb769": 43, "3b03d76e": 44, "3eb2f9dc": 45, "3fe840eb": 46, "42156eb4": 47, "4422e246": 48, "44af41ef": 49, "46f42a63": 50, "478ebe53": 51, "47d6a934": 52, "48b975db": 53, "49fe3d4e": 54, "4ab361e1": 55, "4d8657a2": 56, "4e4dd817": 57, "4f487d87": 58, "4f8670dc": 59, "51351dd6": 60, "580817cd": 61, "5978055e": 62, "5afd9e51": 63, "5b3fc509": 64, "5f4de855": 65, "605bbc24": 66, "61c65daf": 67, "61e43922": 68, "62036f49": 69, "636195f8": 70, "6e2907f1": 71, "6e5da64f": 72, "6f833c7a": 73, "715b22a3": 74, "7203f04e": 75, "7301027a": 76, "740c210d": 77, "768f6658": 78, "769a1844": 79, "76dfc898": 80, "779f824b": 81, "781f4d92": 82, "7a3043c0": 83, "7ce5cdf0": 84, "7d65a908": 85, "8019075f": 86, "80467802": 87, "80dcea18": 88, "8368e64b": 89, "83e6ca2e": 90, "84c02464": 91, "84def884": 92, "85dbe138": 93, "863f8f8a": 94, "879fa878": 95, "8978af5c": 96, "8b11c4b8": 97, "8e7ad399": 98, "90dca23e": 99, "91a1b611": 100, "9325eab4": 101, "93b18cb5": 102, "94881fc3": 103, "949ea585": 104, "9b656adc": 105, "9b7d472e": 106, "9b9e44d2": 107, "9be66b48": 108, "9dfda2b9": 109, "9ff13f22": 110, "a03da696": 111, "a36387e6": 112, "a4b04123": 113, "a4c7bffd": 114, "a4fafa5b": 115, "aa655a2f": 116, "aa902020": 117, "ad61640d": 118, "aebdb575": 119, "b0c30eeb": 120, "b55434a9": 121, "b72482f5": 122, "b87a829f": 123, "bb7a2c12": 124, "bcb2e77c": 125, "bd251a95": 126, "c281c227": 127, "c3f71b59": 128, "c5bc951e": 129, "c6378246": 130, "c95c9034": 131, "cd98af01": 132, "ce418dc9": 133, "ce5114a2": 134, "cfbfce5c": 135, "d3802338": 136, "d7ce3abd": 137, "dbe5226f": 138, "dc1d72e4": 139, "dcc8f90a": 140, "dccbd94b": 141, "dd183b4c": 142, "df5886ca": 143, "dfb2a8fa": 144, "e40e52ae": 145, "e4b5ce61": 146, "e5643e9a": 147, "e62d6c68": 148, "e67cdf97": 149, "e6fc496d": 150, "e8df3343": 151, "e8f6ccfe": 152, "ea18ebd8": 153, "ea1f21b7": 154, "ea31804b": 155, "ea519e47": 156, "eae197fd": 157, "ebd756bd": 158, "ef007ecc": 159, "f47f13e4": 160, "f5df7ab9": 161, "f66b043c": 162, "f9d99d81": 163, "fa17cc68": 164, "fca56425": 165}, "C14": {"051219e6": 0, "07d13a8f": 1, "1adce6ef": 2, "32813e21": 3, "64c94865": 4, "8ceecbc8": 5, "91233270": 6, "b28479f6": 7, "cfef1c29": 8, "d2dfe871": 9, "e8dce07a": 10, "ec19f520": 11, "f7c1b33f": 12, "f862f261": 13}, "C15": {"003cf364": 0, "00e52733": 1, "054ebda1": 2, "06373944": 3, "06809048": 4, "0816fba2": 5, "0a069322": 6, "0c67c4ca": 7, "0e78291e": 8, "0f942372": 9, "10040656": 10, "10139ce3": 11, "102fc449": 12, "1150f5ed": 13, "11b2ae92": 14, "11da3cff": 15, "12f48803": 16, "13f8263b": 17, "14674f9b": 18, "162f3329": 19, "17a3bcd8": 20, "18847041": 21, "1addf65e": 22, "1dca7862": 23, "217d99f2": 24, "23287566": 25, "28883800": 26, "298421a5": 27, "29a18ba0": 28, "2cd24ac0": 29, "2d0bb053": 30, "2de5271c": 31, "2eb18840": 32, "2f453358": 33, "310d155b": 34, "31b59ad3": 35, "32ec6582": 36, "33d2c881": 37, "36721ddc": 38, "3b2d8705": 39, "3d2c6113": 40, "40e29d2a": 41, "413cc8c6": 42, "422c8577": 43, "42793602": 44, "42b3012c": 45, "443b0c0b": 46, "456583e6": 47, "45e17a48": 48, "46218630": 49, "487ddf17": 50, "4c1df281": 51, "4e06592a": 52, "4f3b3616": 53, "50b07d60": 54, "51c5d5ca": 55, "52b49730": 56, "52baadf5": 57, "5340cb84": 58, "55808bb2": 59, "55d28d38": 60, "55dc357b": 61, "5726b2dc": 62, "59a58e86": 63, "5ab7247d": 64, "5be89da3": 65, "5edc1a28": 66, "60fa10e5": 67, "622c34d8": 68, "62eca3c0": 69, "633f1661": 70, "681a3f32": 71, "69f825dd": 72, "6d68e99c": 73, "6da7d68c": 74, "6ddbba94": 75, "715f1291": 76, "717db705": 77, "72f85ad5": 78, "72fbc65c": 79, "73438c3b": 80, "73e2709e": 81, "78e3b025": 82, "7ac43a46": 83, "7ba31d46": 84, "7f1c4567": 85, "7f758956": 86, "801ee1ae": 87, "80d1ee72": 88, "81d3f724": 89, "846fb5bd": 90, "8ab5b746": 91, "8d3c9c0c": 92, "902a109f": 93, "903024b9": 94, "91126f30": 95, "91f74a64": 96, "943169c2": 97, "962bbefe": 98, "9703aa2f": 99, "99153e7d": 100, "9917ad07": 101, "9c382f7a": 102, "9da6bb5f": 103, "9efd8b77": 104, "a3443e75": 105, "a4f91020": 106, "a66dcf27": 107, "a6bf53df": 108, "a785131a": 109, "a888f201": 110, "a8e962af": 111, "aa322bcf": 112, "aa39dd42": 113, "ac182643": 114, "ada14dd8": 115, "ae3a9888": 116, "b0369b63": 117, "b16ae607": 118, "b25845fd": 119, "b2ff8c6b": 120, "b5de5956": 121, "b812f9f2": 122, "b842e9bb": 123, "b96e7224": 124, "ba8b8b16": 125, "bb1e9ca8": 126, "bfef54b3": 127, "c1124d0c": 128, "c12fc269": 129, "c169c458": 130, "c1ddc990": 131, "c251e774": 132, "c38116c9": 133, "c68ba31d": 134, "ca8b2a1a": 135, "cb0f0e06": 136, "cccdd69e": 137, "cdb87fb5": 138, "cddd56a1": 139, "d002b6d9": 140, "d2f03b75": 141, "d33de6b0": 142, "d345b1a0": 143, "d4525f76": 144, "d4a5a2be": 145, "d5223973": 146, "d83fb924": 147, "dbc5e126": 148, "de829bed": 149, "dfab705f": 150, "e0052e65": 151, "e28388cc": 152, "e3209fc2": 153, "e6863a8e": 154, "ee569ce2": 155, "ef6b7bdf": 156, "f2252b1c": 157, "f3002fbd": 158, "f3635baf": 159, "f3a94039": 160, "f511c49f": 161, "f6b23a53": 162, "f775a6d5": 163, "f8ebf901": 164, "fa321567": 165, "fb67e61d": 166, "fc29c5a9": 167, "fc42663d": 168, "fd888b80": 169}, "C16": {"-1": 0, "022714ba": 1, "03b5b1e2": 2, "0596b5be": 3, "05a97a3c": 4, "068a2c9f": 5, "08514295": 6, "0ab5ee0c": 7, "0decd005": 8, "0fd6d3ca": 9, "1203a270": 10, "1206a8a1": 11, "121f63c9": 12, "12e989e9": 13, "13ede1b5": 14, "1689e4de": 15, "169f1150": 16, "1871ac47": 17, "19f6b83c": 18, "1bf03082": 19, "1c3a7247": 20, "1cdb3603": 21, "1f55226d": 22, "208d4baf": 23, "22283336": 24, "229bf6f4": 25, "23056e4f": 26, "236709b9": 27, "23c4fd37": 28, "25b075e4": 29, "270e2a53": 30, "271d5b6c": 31, "29a3715b": 32, "2a27c935": 33, "2b2ce127": 34, "2b7f6e55": 35, "2c9d222f": 36, "3084c78b": 37, "30e6420c": 38, "3141102a": 39, "31ca40b6": 40, "33301a0b": 41, "33a55538": 42, "36103458": 43, "3b87fa92": 44, "3eef319d": 45, "4032eea3": 46, "41bec2fe": 47, "4558136f": 48, "48af915a": 49, "4c7535f3": 50, "4d664c70": 51, "51b69881": 52, "52bee03d": 53, "569a0480": 54, "587267a3": 55, "5891d119": 56, "58cacba8": 57, "5c646b1e": 58, "5e1b6b9d": 59, "5e622e84": 60, "5fb9ff62": 61, "5fbf4a84": 62, "606df1fe": 63, "62675893": 64, "635c3e13": 65, "64223df7": 66, "64e0265f": 67, "6512dce6": 68, "65a31309": 69, "67b3c631": 70, "696fb81d": 71, "69f67894": 72, "6d87c0d4": 73, "6de617d3": 74, "72401022": 75, "776f5665": 76, "789e0e3e": 77, "7ce58da8": 78, "7d0949a5": 79, "7d9b60c8": 80, "7d9d720d": 81, "8023d5ba": 82, "809c9e0e": 83, "81db2bec": 84, "82708081": 85, "834b85f5": 86, "84898b2a": 87, "87acb535": 88, "89052618": 89, "8ac5e229": 90, "8e47fca6": 91, "9066bcfb": 92, "90d6ddcd": 93, "91a6eec5": 94, "9243e635": 95, "929eef3c": 96, "95a8919c": 97, "967bc626": 98, "9906d656": 99, "9b3f7aa2": 100, "9e6ff465": 101, "9e724f87": 102, "9ee32e6f": 103, "9f1d1f70": 104, "9fa82d1c": 105, "9fe6f065": 106, "a14df6f7": 107, "a249bde3": 108, "a3d7b1d6": 109, "a694f6ce": 110, "a98ec356": 111, "a9b56248": 112, "aafa191e": 113, "afc96aa6": 114, "b041b04a": 115, "b3dc5e07": 116, "b458da0e": 117, "b49f63ab": 118, "b50d9336": 119, "b688c8cc": 120, "b6d021e8": 121, "b74e1eb0": 122, "b7a016ed": 123, "b7f61016": 124, "b9a4d133": 125, "bad5ee18": 126, "bb6d240e": 127, "bc3ccba9": 128, "c0673b44": 129, "c43b15fe": 130, "c57bda3a": 131, "c64d548f": 132, "c66a58da": 133, "c73993da": 134, "cc93bd1d": 135, "cf3ec61f": 136, "d08de474": 137, "d1a4e968": 138, "d2b0336b": 139, "d8831736": 140, "da441c7e": 141, "de815c2d": 142, "df604f5b": 143, "e05d680b": 144, "e15ad623": 145, "e2bc04da": 146, "e2e2fcd9": 147, "e2e3cf1c": 148, "e3a83d5c": 149, "e3d99bf0": 150, "e638c51d": 151, "e66306df": 152, "e71dfc2d": 153, "e75cb6ea": 154, "e7af7559": 155, "ea1c4696": 156, "ebbb82d7": 157, "eedd265a": 158, "f2a191bd": 159, "f2c6a810": 160, "f39f1141": 161, "f4944655": 162, "f4ead43c": 163, "f6613e51": 164, "f68bd494": 165, "fb2ac6b5": 166, "fb8ca891": 167}, "C17": {"07c540c4": 0, "1e88c74f": 1, "2005abd1": 2, "27c07bd6": 3, "3486227d": 4, "776ce399": 5, "8efede7f": 6, "d4bb7bd8": 7, "e5ba7672": 8}, "C18": {"004fdf10": 0, "005c6740": 1, "065917ca": 2, "08154af3": 3, "0ad1cc71": 4, "0f2f9850": 5, "130ebfcd": 6, "13145934": 7, "1616f155": 8, "1999bae9": 9, "19ef42ad": 10, "1f868fdd": 11, "21eb63af": 12, "2585827d": 13, "25c88e42": 14, "2804effd": 15, "281769c2": 16, "2b46823a": 17, "2efa89c6": 18, "35176a17": 19, "35a9ed38": 20, "35ee3e9e": 21, "381bd833": 22, "38f08461": 23, "395856b0": 24, "3972b4ed": 25, "3ae505af": 26, "3c4f2d82": 27, "43dfe9bd": 28, "449d6705": 29, "456d734d": 30, "4771e483": 31, "48ce336b": 32, "4b0f5ddd": 33, "4b17f8a2": 34, "4bcc9449": 35, "52b872ed": 36, "52e44668": 37, "561cabfe": 38, "582152eb": 39, "5aed7436": 40, "5ba7fffe": 41, "5bb2ec8e": 42, "5d961bca": 43, "62acb0f3": 44, "63cdbb21": 45, "642f2610": 46, "65c9624a": 47, "670f513e": 48, "675c9258": 49, "67bd0ece": 50, "6c5555bd": 51, "6fc84bfb": 52, "752d8b8a": 53, "79a92e0a": 54, "7b06fafe": 55, "7b49e3d2": 56, "7ce63c71": 57, "7d8c03aa": 58, "7da6ea7e": 59, "7e32f7a4": 60, "7ef5affa": 61, "821c30b8": 62, "824dcc94": 63, "836a11e3": 64, "836a67dd": 65, "87c6f83c": 66, "87fd936e": 67, "8814ed47": 68, "891589e7": 69, "8f0f692f": 70, "906ff5cb": 71, "908eaeb8": 72, "95f5c722": 73, "9880032b": 74, "9b82aca5": 75, "9bf8ffef": 76, "9d3171e9": 77, "a1654f4f": 78, "a1d0cc4f": 79, "a78bd508": 80, "a7cf409e": 81, "a863ac26": 82, "ac02dc99": 83, "ade68c22": 84, "ae46962e": 85, "b04e4670": 86, "b34aa802": 87, "b608c073": 88, "bb983d97": 89, "bc48b783": 90, "bc5a0ff7": 91, "bd17c3da": 92, "be5810bd": 93, "c191a3ff": 94, "c21c3e4c": 95, "c235abed": 96, "c68ebaa0": 97, "c9da8737": 98, "ca533012": 99, "ca6a63cf": 100, "cbadff99": 101, "cf1cde40": 102, "d1605c46": 103, "d2651d6e": 104, "d3303ea5": 105, "d3c7daaa": 106, "d452c287": 107, "d495a339": 108, "d4a314a2": 109, "df4fffb7": 110, "dff11f14": 111, "e01eacde": 112, "e261f8d8": 113, "e32bf683": 114, "e7648a8f": 115, "e7e991cb": 116, "e88ffc9d": 117, "e96a7df2": 118, "f0959f21": 119, "f2fc99b1": 120, "f54016b9": 121, "f5f4ae5b": 122, "f6a2fc70": 123, "fb342121": 124, "fd3919f9": 125, "fffe2a63": 126}, "C19": {"-1": 0, "0053530c": 1, "083e89d9": 2, "1d04f4a4": 3, "1d1eb838": 4, "21ddcdc9": 5, "2442feac": 6, "2b558521": 7, "2e30f394": 8, "2f4b9dd2": 9, "39e30682": 10, "42e59f55": 11, "444a605d": 12, "49463d54": 13, "4a237258": 14, "4b1019ff": 15, "4cc48856": 16, "54591762": 17, "55dd3565": 18, "566c492c": 19, "5b885066": 20, "6301e460": 21, "6d82104d": 22, "6f3756eb": 23, "712d530c": 24, "738584ec": 25, "7be4df37": 26, "92524a76": 27, "a34d2cf6": 28, "af1445c4": 29, "b1fb78cc": 30, "b6baba3f": 31, "ba92e49d": 32, "bdffef68": 33, "bf212c4c": 34, "c79aad78": 35, "cc4c70c1": 36, "cf99e5de": 37, "d913d8f1": 38, "e27c6abe": 39, "edb3d180": 40, "f30f7842": 41, "fc134659": 42, "ff6cdd42": 43}, "C20": {"-1": 0, "5840adea": 1, "a458ea53": 2, "b1252a9d": 3}, "C21": {"-1": 0, "0014c32a": 1, "0370bc83": 2, "0429f84b": 3, "06e40c52": 4, "07b6c66f": 5, "07b818d7": 6, "0be61dd1": 7, "0d7a15fd": 8, "0e8585d2": 9, "0fbced35": 10, "1380864e": 11, "15414e28": 12, "15bb899d": 13, "15fb7955": 14, "16f71b82": 15, "1c63c71e": 16, "1d14288c": 17, "1de5dd94": 18, "1df3ad93": 19, "23da7042": 20, "26e36622": 21, "2754aaf1": 22, "29d21ab1": 23, "2b796e4a": 24, "2e01979f": 25, "301fc194": 26, "30244f84": 27, "31c8e642": 28, "33706b2d": 29, "34cc61bb": 30, "35198a67": 31, "361a1080": 32, "37a23b2d": 33, "37c3d851": 34, "38879cfe": 35, "3aa05bfb": 36, "3b66cfcf": 37, "3df2213d": 38, "40b11f62": 39, "43d01030": 40, "4a2c3526": 41, "4a8f0a7f": 42, "4c14738f": 43, "4d2b0d06": 44, "4f1aa25f": 45, "514b7308": 46, "5155d8a3": 47, "5362f5c3": 48, "53def47b": 49, "54d8bb06": 50, "56b58097": 51, "5911ddcb": 52, "5a49c6db": 53, "5a5953a2": 54, "5b6b6b73": 55, "5c7c443c": 56, "5c859cae": 57, "5c8dc711": 58, "5def73cb": 59, "5f957280": 60, "5fe17899": 61, "5ff5ac4a": 62, "605776ee": 63, "61b4555a": 64, "632bf881": 65, "6387fda4": 66, "65f3080f": 67, "67afd8d0": 68, "6a41d841": 69, "6a909d9a": 70, "6b4fc63c": 71, "6c38450e": 72, "6fb7987f": 73, "723b4dfd": 74, "72c8ca0c": 75, "73d06dde": 76, "7633c7c8": 77, "77799c4f": 78, "78c1dd4b": 79, "79fe2943": 80, "7a380bd1": 81, "7b6393e8": 82, "7e5b7cc4": 83, "7eefff0d": 84, "81f8278e": 85, "822be048": 86, "8443660f": 87, "84ec2c79": 88, "86a8e85e": 89, "8717ea07": 90, "8a93f0a1": 91, "8b7fb864": 92, "8f78192f": 93, "9179411e": 94, "9308de7e": 95, "95ee3d7a": 96, "98a79791": 97, "99712f38": 98, "9988d803": 99, "9c3eb598": 100, "9ecb9e0d": 101, "9efd5ec7": 102, "9fb07dd2": 103, "a1229e5f": 104, "a13bd40d": 105, "a2b7caec": 106, "a370fd83": 107, "a4b7004c": 108, "a66e7b01": 109, "a716bbe2": 110, "a97b62ca": 111, "aebdd3c2": 112, "af5dc647": 113, "b1ae3ed2": 114, "b4770b64": 115, "b7ba6151": 116, "b964dee0": 117, "ba3c688b": 118, "bbcf650c": 119, "bd074856": 120, "bd1f6272": 121, "be01d6b1": 122, "bf647035": 123, "bfeb50f6": 124, "c0cd6339": 125, "c12eabbb": 126, "c1429b47": 127, "c2a93b37": 128, "c2af6d9f": 129, "c3739d01": 130, "c4b9fb56": 131, "c4c42074": 132, "cc6a9262": 133, "cc86f2c1": 134, "cd11300e": 135, "cf79f8fa": 136, "cff19dc6": 137, "d1aa4512": 138, "d1d4f4a9": 139, "d4703ebd": 140, "d479575f": 141, "d4f22efc": 142, "d5a53bc3": 143, "d7a43622": 144, "d90f665b": 145, "dc55d6df": 146, "deb9605d": 147, "df66957b": 148, "df9de95c": 149, "dfcfc3fa": 150, "e049c839": 151, "e1627e2c": 152, "e208a45f": 153, "e339163e": 154, "e54f0804": 155, "e587c466": 156, "e7f0c6dc": 157, "ea6a0e31": 158, "ebfa4c53": 159, "ec4a835a": 160, "ec5ac7c6": 161, "ed01532f": 162, "f15fe1ee": 163, "fb19a39b": 164, "fca82615": 165, "fd0e41ce": 166, "fd3ca145": 167, "fdc724a8": 168}, "C22": {"-1": 0, "78e2e389": 1, "8ec974f4": 2, "ad3062eb": 3, "c0061c6d": 4, "c9d4222a": 5}, "C23": {"32c7478e": 0, "3a171ecb": 1, "423fab69": 2, "55dd3565": 3, "72592995": 4, "93bad2c0": 5, "bcdee96c": 6, "be7c41b4": 7, "c7dc6720": 8, "dbb486d7": 9}, "C24": {"-1": 0, "03955d00": 1, "043a382b": 2, "08b0ce98": 3, "0ac1b18a": 4, "0d4a6d1a": 5, "0ea7be91": 6, "0ee762c3": 7, "0ff91809": 8, "1335030a": 9, "1481ceb4": 10, "167193c9": 11, "1793a828": 12, "17f458f7": 13, "18109ace": 14, "1989e165": 15, "198d16cc": 16, "1be0cc0a": 17, "1f68c81f": 18, "246f2e7f": 19, "2896ad66": 20, "2f34b1ef": 21, "2fd70e1c": 22, "30ab4eb4": 23, "325bcd40": 24, "359dd977": 25, "364442f6": 26, "365def8b": 27, "38b97a31": 28, "394c5a53": 29, "3a6f67d1": 30, "3aebd96a": 31, "3b183c5c": 32, "3e30919e": 33, "3e983c86": 34, "3fdb382b": 35, "42998020": 36, "42a310e6": 37, "42df8359": 38, "43fe299c": 39, "44aeb111": 40, "45ab94c8": 41, "45b2acf4": 42, "4acb8523": 43, "4f7b7578": 44, "52d7797f": 45, "58e38a64": 46, "590b856f": 47, "5fd07f39": 48, "6095f986": 49, "69e4f188": 50, "6c1cdd05": 51, "6c25dad0": 52, "6d5d1302": 53, "71dc4ef2": 54, "727a7cc7": 55, "74f7ceeb": 56, "75b9c133": 57, "772b286f": 58, "7836b4d5": 59, "7b80ab11": 60, "7e60320b": 61, "8535db9f": 62, "8849cfac": 63, "88cba9eb": 64, "8d365d3b": 65, "8d49fa4b": 66, "8f079aa5": 67, "9257f75f": 68, "936da3dd": 69, "996f5a43": 70, "9b18ad04": 71, "9b7eed78": 72, "9d8b4082": 73, "9f0d87bf": 74, "a0634086": 75, "a415643d": 76, "a5862ce8": 77, "a6e7d8d3": 78, "a8380e43": 79, "a86c0565": 80, "a9d9c151": 81, "aa0115d2": 82, "aa5529de": 83, "aa9b9ab9": 84, "abe3a684": 85, "ad80aaa7": 86, "aee52b6f": 87, "af0cb2c3": 88, "b1aad66f": 89, "b2df17ed": 90, "b34f3128": 91, "b44bd498": 92, "bc491035": 93, "be2f0db5": 94, "c0b8dfd6": 95, "c0d61a5c": 96, "c94ffa50": 97, "c9a8db2a": 98, "c9bc2384": 99, "cafb4e4d": 100, "cc4079ea": 101, "cde6fafb": 102, "cf300ce9": 103, "d36c7dbf": 104, "d4af2638": 105, "d5b01f55": 106, "d5b4ea7d": 107, "d65fa724": 108, "d91ea8bd": 109, "da408463": 110, "dcba8699": 111, "ded4aac9": 112, "df487a73": 113, "e33735a0": 114, "e3aea32f": 115, "e448275f": 116, "e4e10900": 117, "e5ed7da2": 118, "eaa38671": 119, "f20c047e": 120, "f2e9f0dd": 121, "f93938dd": 122, "faf5d8b3": 123, "fb890da1": 124}, "C25": {"-1": 0, "001f3601": 1, "010f6491": 2, "2bf691b1": 3, "33d94071": 4, "445bbe3b": 5, "46fbac64": 6, "47907db5": 7, "724b04da": 8, "7a402766": 9, "875ea8a7": 10, "9b3e8820": 11, "9d93af03": 12, "b9266ff0": 13, "c243e98b": 14, "cb079c2d": 15, "e8b83407": 16, "ea9a246c": 17, "f0f449dd": 18, "f55c04b6": 19}, "C26": {"-1": 0, "00ed90d0": 1, "00efb483": 2, "070f6cb2": 3, "074bb89f": 4, "09929967": 5, "0e2018ec": 6, "0eabc199": 7, "0facb2ea": 8, "1219b447": 9, "1793fb3f": 10, "1a02cbe1": 11, "1ba54abc": 12, "1d7b6578": 13, "27029e68": 14, "2f44e540": 15, "2fc5e3d4": 16, "2fede552": 17, "322cbe58": 18, "33757f80": 19, "350a6bdb": 20, "37c5e077": 21, "3a97b421": 22, "3df61e3d": 23, "49d68486": 24, "4a449e4c": 25, "4e7af834": 26, "56be3401": 27, "59e91663": 28, "67ebe777": 29, "68d9ada1": 30, "6935065e": 31, "6d73203e": 32, "70451962": 33, "71236095": 34, "79883c16": 35, "7a1ac642": 36, "7a2fb9af": 37, "814b9a6b": 38, "81be451e": 39, "85cebe8c": 40, "85fd868a": 41, "86174332": 42, "86601e0a": 43, "8b3e7faa": 44, "8ded0b41": 45, "8fd6bdd6": 46, "92c878de": 47, "984e0db0": 48, "988b0775": 49, "9904c656": 50, "9973f80f": 51, "99f4f64c": 52, "9c015713": 53, "a39e1586": 54, "aa5f0a15": 55, "adb5d234": 56, "ae5fce01": 57, "b6a3490e": 58, "b7d9c3bc": 59, "b9809574": 60, "b98a5b90": 61, "ba14bbcb": 62, "bd2ec696": 63, "bdc8589e": 64, "bde577f6": 65, "c0fca43d": 66, "c27f155b": 67, "c4304c4b": 68, "c4e4eabb": 69, "c73ed234": 70, "c84c4aec": 71, "c986348f": 72, "d14e41ff": 73, "d597922b": 74, "d5ca783a": 75, "dd8b4f5c": 76, "ddf88ddd": 77, "deffd9e3": 78, "df46df55": 79, "e001324a": 80, "e438a496": 81, "e75c9ae9": 82, "f3737bd0": 83, "f3b1f00d": 84, "f4642e0e": 85, "f610730e": 86, "f89dfbcc": 87, "f95af538": 88, "fa3124de": 89}} \ No newline at end of file diff --git a/examples/estimator_serving/max_min.txt b/examples/estimator_serving/max_min.txt new file mode 100644 index 00000000..fcee4075 --- /dev/null +++ b/examples/estimator_serving/max_min.txt @@ -0,0 +1,14 @@ + max min +I1 37.0 0.0 +I2 3001.0 -1.0 +I3 2815.0 0.0 +I4 87.0 0.0 +I5 507333.0 0.0 +I6 2106.0 0.0 +I7 301.0 0.0 +I8 49.0 0.0 +I9 1034.0 0.0 +I10 3.0 0.0 +I11 32.0 0.0 +I12 7.0 0.0 +I13 102.0 0.0 diff --git a/examples/estimator_serving/serving_raw/1593253204/saved_model.pb b/examples/estimator_serving/serving_raw/1593253204/saved_model.pb new file mode 100644 index 0000000000000000000000000000000000000000..a4aa0996ad951083558dfdf6e4ec32e78972f7e6 GIT binary patch literal 1978309 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

rw9lQJeQBRNhjnS6JN|dt=gyE)pF@4Ntl78A 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

76`I-$#Sxxj+wP95hBRi^%G;~ zfxN7pPzW4|1X(+wEZa;+9g6r_J8xdVzSk~kvLLgREGOHpzv9PQewNXzBwm)W#IsG? zXJ_rMjGncVOR#;6nTwE1a1mdUwUf(%BNIDoCl_Yj#$24rB{;Y7*I#le)(&RYu0R4m zYbO`t&zN{wJGl(&s=UxqXX9k;gvGmX%OhqAi+9s2N!Cs%1dhGztesGj^%irfEG*u6i@%Z-im(R6PuONtO=?ULnWLme|~S0bdDGx1Ky_7h|0 zfxN7pPzW4|8iU4drlSr;{H&cfyb0rm4VCPyovqJtvUbAa?LflJQ3#87(<@2VPACM9z3i-=P?Gf)bEzyW-g%3k zwG)c47BE-7eT(O3?SvBiIVdk3A{1afG-{6!W$ls{2(os`a}-vfwUf(% z!(!vW(R<0*10z3ccdb{}?wZTmu^F=R+OdPm_~S1>vzIeNklD)>l^s*~DKW3YmNPnt zwhTs%keSdebf4^mtQ9s+)=pTw?HSA*g|K)xy^>_@ghJrh%g)*fC0TDVm&(H8owxWa zNuda90W)jYw|IWmPAI{jgYvR=LIKu8qxJ|<)-Gv*AZwQ_CmSP}S-TP;&76t1*RG!! zI}hY#?Sw+$K-3sCZZjQqDB@@BymkJ8LHwX5GeIoXRCQxAC)faw*mh z=Blwk0zYdf7vj&Dc=-sq4C|_~dx|J)m$O5VwaXQi9|?J@^i#W@<+6Im zK_(hQFvI{6V@xD5pae+7nDBxz_&^9g_$P!Ie9-tnKob%TuD$!$wf0_BwX43ncD43R zo8Zlyu2og5cCA{qKEJhpKg$?EIT7$2P&?2Fuf1++2U?9bg;hw0Zo>N~;DdhCb$=SSal zzQ2<`jpP;5HA_G9;nk;>C?tKm=KQzi|uPr+hYetu4d{=c=4RO8Ww8%n`YOpTj9tHW&zaX_ zCb#)mZ1m|E|FG;1erv8goslKqt+^S`bi5vrTXUwd{v+Wlsu%B*jm>>)t^}Vz@6{Br z4$gUR&DGR!)29n6;k)L9s;ADxcSi_SKk7>V+b!SMG@wR!?Jdv4$5^Og^gRrUmJ>jM z>T9&zH#yK)(F~H)$$e`MoxrdM&3(qHE28T@fBi$NKjqw7CxCw6db-{ZMMFK>|H_i` zeU1d?{K!b(GiA<&`as_e6>u)R5cLzvP1Dp;)U|(bBjLH`JNa0LUJmK%>J_ zxpMapw(tk$Lt;VSx@ENXz6M=lItS=RUF-^&o7#~vA1I|&+biH* z*Sa#?Av!;Mak77S^z!KR@aXjI_sa9|9hJf9P_&#!Wl(*MmY>>zCTIr9>Ex$&-~?zr zlvg-%pKH~e$4m6@Pfw^g#T8jMCZqUfN zsT~;JtEydoYB!kl)hrG_wVRABKmD}F*s~7+I z)2|QC4!3D1a5nY01xh$4i@+_^9Uq}~xE)@Z+|&*?MqzUvPH_u0Y<_BoTcLU6Czzkw z;nSdXQaUCdwZm;tsIpfIMD4730MyP>WmiJqX*p;IpmtG9erh+{5_M}nYKPn5Wf7ou zxH(!S*@e+h?RLk�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 P5$LjUq7nFiS#|#}c2*YR literal 0 HcmV?d00001 diff --git a/examples/estimator_serving/serving_raw/1593253204/variables/variables.data-00000-of-00001 b/examples/estimator_serving/serving_raw/1593253204/variables/variables.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..78b1333edfdb76bd08e408348007a9791f7f76cc GIT binary patch literal 172600 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

2=y+xVM6-2#;@m!_LODeXxhTJ{A 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 A8~^|S literal 0 HcmV?d00001 diff --git a/examples/estimator_serving/serving_raw/1593253204/variables/variables.index b/examples/estimator_serving/serving_raw/1593253204/variables/variables.index new file mode 100644 index 0000000000000000000000000000000000000000..0a89ff3d33d322ac5f1bb111be8c8a9c2f3f59cb GIT binary patch literal 3383 zcma)xTBTI5+$=JCobQAxDOK9-30xz7roU!1SnWIJN> zONuHp@V-sl*L+sGePhqelQGPmX}B)a_4{W}bIMUEdQeg+7_fR+8N+?u7O0AyF?S40 zC8?^Xq`aChXyHDLP;pM(Xr1URDXXZiD)bgD^DJ>q&n)zm&i51-my|7Z-TbX^si$P& zb5)fXN5&+n_-(}~QQU8V`kpOk|3kwItNTR_WLIEOal_CQR(0#h3C3$3V#+3 z)DHcF=Z>D;p-huh71BYJHZa&Q+0vnRsXLr5eOXWYw!*vO;IsS(Q&Edu>JHVVl-Dk_ z!F>u3L_kkx%bTdhCUu8uQqn#tv<-gr91VRN`82E%PF5((G#uN9YxD_v9t&q4ox3z% zBhTSjjuC0=j-q7-A2(fiCSFTM%i%bV64I_Ng;#+6%zYQoFb-9ynIgl7h7BK6_+Sz= z4&*R2j6)U9OpO&;{R0a3M?m_7m-^8#j!-xg6d|O+-xRLFD|hAGh)+ww0m=+DK;-zf z;Z8oU@L&R@r_NHO=(vU6^7%#H!pbU71+EE63tm^a46ORcd!^fxy(MLyq9rcgl{Gc&FGZ-uv6;o8Z1hLAB1LE??TwA$4wZ?!?^ zoxSY{xlNJ8=4V=9t;(BhaN)ZLE+dp>g2aYLOSLMmw?RSom(58^a<&1YUZqWrug^^? z&x3;Ur_N&>Fd*b;I9VGqnC#@?5B4IIV}itDW?FEo${TF((bt(9Fao&O8%BdzNX9h+Mb8gNgGtBQw>+(E4Or!%mg^87Li3oOLL;Pe#s~QqfD9 zXYePd;$Zu*cb=+!*HWAZm4y!x^I%^!Uh?ou0#=+-8WE^zl&t8V9jNL-1#A?B_ zN9ME*<_7LKj&aQWLOXKQRN5(W9&r$n!a|TM;q$iXNp_AaCukFGIxK6*^KUkW=G2 zru@eSnmKyt%|bWv`0>~AC`J!mFObga+* zTwWb%6i8%2cNHSW@{S~G5=fP6J$W$~SC7&nkhWj9Y(vCcTpjTX Date: Sat, 27 Jun 2020 18:58:25 +0800 Subject: [PATCH 2/3] up save script --- ...estimator_classification_raw_serving.ipynb | 988 ++++++++++++++++++ 1 file changed, 988 insertions(+) create mode 100644 examples/estimator_serving/run_estimator_classification_raw_serving.ipynb diff --git a/examples/estimator_serving/run_estimator_classification_raw_serving.ipynb b/examples/estimator_serving/run_estimator_classification_raw_serving.ipynb new file mode 100644 index 00000000..60996c30 --- /dev/null +++ b/examples/estimator_serving/run_estimator_classification_raw_serving.ipynb @@ -0,0 +1,988 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import tensorflow as tf\n", + "from sklearn.metrics import log_loss, roc_auc_score\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import LabelEncoder, MinMaxScaler\n", + "\n", + "from deepctr.estimator.inputs import input_fn_pandas\n", + "from deepctr.estimator import DeepFMEstimator" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.read_csv('../criteo_sample.txt')\n", + "sparse_features = ['C' + str(i) for i in range(1, 27)]\n", + "dense_features = ['I' + str(i) for i in range(1, 14)]\n", + "data[sparse_features] = data[sparse_features].fillna('-1', )\n", + "data[dense_features] = data[dense_features].fillna(0, )\n", + "target = ['label']\n", + "df = data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def get_integer_mapping(le):\n", + " '''\n", + " Return a dict mapping labels to their integer values from an SKlearn LabelEncoder\n", + " le = a fitted SKlearn LabelEncoder\n", + " '''\n", + " res = {}\n", + " for idx, val in enumerate(le.classes_):\n", + " res.update({val:idx})\n", + "\n", + " return res" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# 1.Label Encoding for sparse features,and do simple Transformation for dense features\n", + "feat_index_dict = {} \n", + "for feat in sparse_features:\n", + " lbe = LabelEncoder()\n", + " data[feat] = lbe.fit_transform(data[feat])\n", + " feat_index_dict.update({feat:get_integer_mapping(lbe)})\n", + "\n", + "# save min max value for each dense feature \n", + "s_max,s_min = data[dense_features].max(axis=0),data[dense_features].min(axis=0)\n", + "pd.concat([s_max, s_min],keys=['max','min'],axis=1).to_csv(f\"max_min.txt\",sep=\"\\t\")\n", + " \n", + "mms = MinMaxScaler(feature_range=(0, 1))\n", + "data[dense_features] = mms.fit_transform(data[dense_features])\n", + "\n", + "# save category features index for serving stage\n", + "import json\n", + "with open(\"feat_index_dict.json\", 'w') as fo:\n", + " json.dump(feat_index_dict, fo)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# 2.count #unique features for each sparse field,and record dense feature field name\n", + "dnn_feature_columns = []\n", + "linear_feature_columns = []\n", + "for i, feat in enumerate(sparse_features):\n", + " dnn_feature_columns.append(tf.feature_column.embedding_column(\n", + " tf.feature_column.categorical_column_with_identity(feat, data[feat].nunique()), 4))\n", + " linear_feature_columns.append(tf.feature_column.categorical_column_with_identity(feat, data[feat].nunique()))\n", + "for feat in dense_features:\n", + " dnn_feature_columns.append(tf.feature_column.numeric_column(feat))\n", + " linear_feature_columns.append(tf.feature_column.numeric_column(feat))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/inputs.py:28: The name tf.estimator.inputs is deprecated. Please use tf.compat.v1.estimator.inputs instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/inputs.py:28: The name tf.estimator.inputs.pandas_input_fn is deprecated. Please use tf.compat.v1.estimator.inputs.pandas_input_fn instead.\n", + "\n" + ] + } + ], + "source": [ + "# 3.generate input data for model\n", + "train, test = train_test_split(data, test_size=0.2)\n", + "# Not setting default value for continuous feature. filled with mean.\n", + "train_model_input = input_fn_pandas(train,sparse_features+dense_features,'label')\n", + "test_model_input = input_fn_pandas(test,sparse_features+dense_features,None)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Using default config.\n", + "WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmptmz7m48o\n", + "INFO:tensorflow:Using config: {'_model_dir': '/tmp/tmptmz7m48o', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true\n", + "graph_options {\n", + " rewrite_options {\n", + " meta_optimizer_iterations: ONE\n", + " }\n", + "}\n", + ", '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_experimental_max_worker_delay_secs': None, '_session_creation_timeout_secs': 7200, '_service': None, '_cluster_spec': , '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/training/training_util.py:236: Variable.initialized_value (from tensorflow.python.ops.variables) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use Variable.read_value. Variables in 2.X are initialized automatically both in eager and graph (inside tf.defun) contexts.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/inputs/queues/feeding_queue_runner.py:62: QueueRunner.__init__ (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "To construct input pipelines, use the `tf.data` module.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/inputs/queues/feeding_functions.py:500: add_queue_runner (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "To construct input pipelines, use the `tf.data` module.\n", + "INFO:tensorflow:Calling model_fn.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:155: The name tf.variable_scope is deprecated. Please use tf.compat.v1.variable_scope instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/feature_column.py:11: The name tf.feature_column.linear_model is deprecated. Please use tf.compat.v1.feature_column.linear_model instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:554: IdentityCategoricalColumn._num_buckets (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:556: Layer.add_variable (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use `layer.add_weight` method instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "If using Keras pass *_constraint arguments to layers.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:2040: IdentityCategoricalColumn._get_sparse_tensors (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:2158: IdentityCategoricalColumn._transform_feature (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/ops/embedding_ops.py:802: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:558: NumericColumn._variable_shape (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:1941: NumericColumn._get_dense_tensor (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:2158: NumericColumn._transform_feature (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:176: The name tf.GraphKeys is deprecated. Please use tf.compat.v1.GraphKeys instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:169: The name tf.get_collection is deprecated. Please use tf.compat.v1.get_collection instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/feature_column.py:25: The name tf.losses.add_loss is deprecated. Please use tf.compat.v1.losses.add_loss instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:190: The name tf.feature_column.input_layer is deprecated. Please use tf.compat.v1.feature_column.input_layer instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:206: EmbeddingColumn._get_dense_tensor (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:207: EmbeddingColumn._variable_shape (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/layers/utils.py:164: calling reduce_sum_v1 (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "keep_dims is deprecated, use keepdims instead\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:95: The name tf.losses.get_regularization_loss is deprecated. Please use tf.compat.v1.losses.get_regularization_loss instead.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:131: The name tf.train.get_global_step is deprecated. Please use tf.compat.v1.train.get_global_step instead.\n", + "\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/training/adagrad.py:76: calling Constant.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Call initializer instance with the dtype argument instead of passing it to the constructor\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:147: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", + "\n", + "INFO:tensorflow:Done calling model_fn.\n", + "INFO:tensorflow:Create CheckpointSaverHook.\n", + "INFO:tensorflow:Graph was finalized.\n", + "INFO:tensorflow:Running local_init_op.\n", + "INFO:tensorflow:Done running local_init_op.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/training/monitored_session.py:882: start_queue_runners (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "To construct input pipelines, use the `tf.data` module.\n", + "INFO:tensorflow:Saving checkpoints for 0 into /tmp/tmptmz7m48o/model.ckpt.\n", + "INFO:tensorflow:loss = 1685.0953, step = 1\n", + "INFO:tensorflow:Saving checkpoints for 1 into /tmp/tmptmz7m48o/model.ckpt.\n", + "INFO:tensorflow:Loss for final step: 1685.0953.\n", + "INFO:tensorflow:Calling model_fn.\n", + "INFO:tensorflow:Done calling model_fn.\n", + "INFO:tensorflow:Graph was finalized.\n", + "INFO:tensorflow:Restoring parameters from /tmp/tmptmz7m48o/model.ckpt-1\n", + "INFO:tensorflow:Running local_init_op.\n", + "INFO:tensorflow:Done running local_init_op.\n", + "test LogLoss 1.2863\n", + "test AUC 0.7083\n" + ] + } + ], + "source": [ + "# 4.Define Model,train,predict and evaluate\n", + "model = DeepFMEstimator(linear_feature_columns, dnn_feature_columns)\n", + "model.train(train_model_input)\n", + "pred_ans_iter = model.predict(test_model_input)\n", + "pred_ans = list(map(lambda x:x['pred'],pred_ans_iter))\n", + "#\n", + "print(\"test LogLoss\", round(log_loss(test[target].values, pred_ans), 4))\n", + "print(\"test AUC\", round(roc_auc_score(test[target].values, pred_ans), 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From :11: Estimator.export_savedmodel (from tensorflow_estimator.python.estimator.estimator) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "This function has been renamed, use `export_saved_model` instead.\n", + "INFO:tensorflow:Calling model_fn.\n", + "INFO:tensorflow:Done calling model_fn.\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/saved_model/signature_def_utils_impl.py:201: build_tensor_info (from tensorflow.python.saved_model.utils_impl) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.utils.build_tensor_info or tf.compat.v1.saved_model.build_tensor_info.\n", + "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n", + "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n", + "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['predict', 'serving_default']\n", + "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n", + "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n", + "INFO:tensorflow:Restoring parameters from /tmp/tmptmz7m48o/model.ckpt-1\n", + "INFO:tensorflow:Assets added to graph.\n", + "INFO:tensorflow:No assets to write.\n", + "INFO:tensorflow:SavedModel written to: ./serving_raw/temp-b'1593253204'/saved_model.pb\n" + ] + }, + { + "data": { + "text/plain": [ + "b'./serving_raw/1593253204'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 5.saved Model by build_raw_serving_input\n", + "def serving_input_receiver_fn():\n", + " feature_map = {}\n", + " for i in range(len(sparse_features)):\n", + " feature_map[sparse_features[i]] = tf.placeholder(tf.int32,shape=(None, ),name='{}'.format(sparse_features[i]))\n", + " for i in range(len(dense_features)):\n", + " feature_map[dense_features[i]] = tf.placeholder(tf.float32,shape=(None, ),name='{}'.format(dense_features[i]))\n", + " return tf.estimator.export.build_raw_serving_input_receiver_fn(feature_map)\n", + " \n", + "model.export_savedmodel(export_dir_base='./serving_raw/',\n", + " serving_input_receiver_fn=serving_input_receiver_fn())" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:\n", + "\n", + "signature_def['predict']:\n", + " The given SavedModel SignatureDef contains the following input(s):\n", + " inputs['C1'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C1:0\n", + " inputs['C10'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C10:0\n", + " inputs['C11'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C11:0\n", + " inputs['C12'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C12:0\n", + " inputs['C13'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C13:0\n", + " inputs['C14'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C14:0\n", + " inputs['C15'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C15:0\n", + " inputs['C16'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C16:0\n", + " inputs['C17'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C17:0\n", + " inputs['C18'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C18:0\n", + " inputs['C19'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C19:0\n", + " inputs['C2'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C2:0\n", + " inputs['C20'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C20:0\n", + " inputs['C21'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C21:0\n", + " inputs['C22'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C22:0\n", + " inputs['C23'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C23:0\n", + " inputs['C24'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C24:0\n", + " inputs['C25'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C25:0\n", + " inputs['C26'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C26:0\n", + " inputs['C3'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C3:0\n", + " inputs['C4'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C4:0\n", + " inputs['C5'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C5:0\n", + " inputs['C6'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C6:0\n", + " inputs['C7'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C7:0\n", + " inputs['C8'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C8:0\n", + " inputs['C9'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C9:0\n", + " inputs['I1'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I1:0\n", + " inputs['I10'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I10:0\n", + " inputs['I11'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I11:0\n", + " inputs['I12'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I12:0\n", + " inputs['I13'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I13:0\n", + " inputs['I2'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I2:0\n", + " inputs['I3'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I3:0\n", + " inputs['I4'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I4:0\n", + " inputs['I5'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I5:0\n", + " inputs['I6'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I6:0\n", + " inputs['I7'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I7:0\n", + " inputs['I8'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I8:0\n", + " inputs['I9'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I9:0\n", + " The given SavedModel SignatureDef contains the following output(s):\n", + " outputs['logits'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1, 1)\n", + " name: head/Reshape:0\n", + " outputs['pred'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1, 1)\n", + " name: head/Sigmoid:0\n", + " Method name is: tensorflow/serving/predict\n", + "\n", + "signature_def['serving_default']:\n", + " The given SavedModel SignatureDef contains the following input(s):\n", + " inputs['C1'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C1:0\n", + " inputs['C10'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C10:0\n", + " inputs['C11'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C11:0\n", + " inputs['C12'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C12:0\n", + " inputs['C13'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C13:0\n", + " inputs['C14'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C14:0\n", + " inputs['C15'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C15:0\n", + " inputs['C16'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C16:0\n", + " inputs['C17'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C17:0\n", + " inputs['C18'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C18:0\n", + " inputs['C19'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C19:0\n", + " inputs['C2'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C2:0\n", + " inputs['C20'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C20:0\n", + " inputs['C21'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C21:0\n", + " inputs['C22'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C22:0\n", + " inputs['C23'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C23:0\n", + " inputs['C24'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C24:0\n", + " inputs['C25'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C25:0\n", + " inputs['C26'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C26:0\n", + " inputs['C3'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C3:0\n", + " inputs['C4'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C4:0\n", + " inputs['C5'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C5:0\n", + " inputs['C6'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C6:0\n", + " inputs['C7'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C7:0\n", + " inputs['C8'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C8:0\n", + " inputs['C9'] tensor_info:\n", + " dtype: DT_INT32\n", + " shape: (-1)\n", + " name: C9:0\n", + " inputs['I1'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I1:0\n", + " inputs['I10'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I10:0\n", + " inputs['I11'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I11:0\n", + " inputs['I12'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I12:0\n", + " inputs['I13'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I13:0\n", + " inputs['I2'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I2:0\n", + " inputs['I3'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I3:0\n", + " inputs['I4'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I4:0\n", + " inputs['I5'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I5:0\n", + " inputs['I6'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I6:0\n", + " inputs['I7'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I7:0\n", + " inputs['I8'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I8:0\n", + " inputs['I9'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1)\n", + " name: I9:0\n", + " The given SavedModel SignatureDef contains the following output(s):\n", + " outputs['logits'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1, 1)\n", + " name: head/Reshape:0\n", + " outputs['pred'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1, 1)\n", + " name: head/Sigmoid:0\n", + " Method name is: tensorflow/serving/predict\n" + ] + } + ], + "source": [ + "export_path = './serving_raw/1593253204'\n", + "!saved_model_cli show --dir {export_path} --all" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2020-06-27 18:20:26.313669: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n", + "2020-06-27 18:20:26.313695: E tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit: UNKNOWN ERROR (303)\n", + "2020-06-27 18:20:26.313709: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (mi-OptiPlex-9020): /proc/driver/nvidia/version does not exist\n", + "2020-06-27 18:20:26.313898: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA\n", + "2020-06-27 18:20:26.334813: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3591625000 Hz\n", + "2020-06-27 18:20:26.335290: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5557a14ef3e0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:\n", + "2020-06-27 18:20:26.335320: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version\n", + "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/tools/saved_model_cli.py:420: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.loader.load or tf.compat.v1.saved_model.load. There will be a new function for importing SavedModels in Tensorflow 2.0.\n", + "Result for output key logits:\n", + "[[-7.176791 ]\n", + " [-3.2864132 ]\n", + " [-0.9394809 ]\n", + " [ 3.079597 ]\n", + " [-0.65539366]]\n", + "Result for output key pred:\n", + "[[7.6353236e-04]\n", + " [3.6040250e-02]\n", + " [2.8100520e-01]\n", + " [9.5604318e-01]\n", + " [3.4177512e-01]]\n" + ] + } + ], + "source": [ + "!saved_model_cli run --dir {export_path} --tag_set serve --signature_def \"serving_default\" --input_expr 'I1=[0.0,0.0,0.0,0.0,0.0];I2=[0.001332,0.0,0.000333,0.004664,0.000333];I3=[0.092362,0.00675,0.00071,0.000355,0.036945];I4=[0.0,0.402298,0.137931,0.045977,0.310344];I5=[0.034825,0.059628,0.003968,0.033185,0.003922];I6=[0.0,0.117284,0.077873,0.094967,0.067426];I7=[0.0,0.003322,0.019934,0.016611,0.013289];I8=[0.673468,0.714284,0.714284,0.081632,0.65306];I9=[0.0,0.154739,0.505803,0.028046,0.035783];I10=[0.0,0.0,0.0,0.0,0.0];I11=[0.0,0.03125,0.09375,0.0625,0.03125];I12=[0.0,0.0,0.0,0.0,0.0];I13=[0.0,0.343137,0.17647,0.039216,0.264706];C1=[0,11,0,0,0];C2=[4,1,18,45,11];C3=[96,98,39,7,59];C4=[146,98,52,117,77];C5=[1,1,3,1,1];C6=[4,6,4,0,5];C7=[163,179,140,164,18];C8=[1,0,2,1,1];C9=[1,1,1,0,1];C10=[72,89,93,20,45];C11=[117,58,31,61,171];C12=[127,97,122,104,162];C13=[157,79,16,36,96];C14=[7,7,7,1,4];C15=[127,72,129,43,36];C16=[126,26,97,43,121];C17=[8,7,8,8,8];C18=[66,52,49,37,14];C19=[0,0,0,0,5];C20=[0,0,0,0,3];C21=[3,47,25,156,9];C22=[0,0,0,0,0];C23=[1,7,6,0,0];C24=[96,112,53,32,5];C25=[0,0,0,0,1];C26=[0,0,0,0,47]'" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# local pc\n", + "import os\n", + "os.environ[\"MODEL_DIR\"] = '/home/mi/openwork/sub/DeepCTR/examples/estimator_serving/serving_raw'" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + " %%bash --bg \n", + "nohup tensorflow_model_server \\\n", + "--port=8500 \\\n", + "--rest_api_port=8501 \\\n", + "--model_name=raw_export_deepfm_model \\\n", + "--model_base_path=${MODEL_DIR} >server.log 2>&1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### make some samples" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# read for category feature\n", + "with open(\"feat_index_dict.json\") as fi:\n", + " sparse_dict = json.load(fi)\n", + " \n", + "# load minmax dict for each dense feature\n", + "df_dense_dict = pd.read_csv(\"./max_min.txt\",sep=\"\\t\",names=['fea_name','max','min'],skiprows=1)\n", + "dense_dict = dict(zip(df_dense_dict['fea_name'],zip(df_dense_dict['max'], df_dense_dict['min'])))\n", + "def get_normal(k,v):\n", + " return round((v - dense_dict[k][1])/(dense_dict[k][0]-dense_dict[k][1]+1e-4),6)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "example_insts = []\n", + "for index, row in df.iterrows():\n", + "# print(row['I1'],row['C2'])\n", + " inst_dict = {}\n", + " for feat in dense_features:\n", + " normal_value = get_normal(feat,row[feat])\n", + " inst_dict.update({feat:normal_value})\n", + " for feat in sparse_features:\n", + " inst_dict.update({feat:sparse_dict[feat][row[feat]]})\n", + " print(inst_dict)\n", + " print(\"-\"*50)\n", + " example_insts.append(inst_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### REST for raw tensor" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "fea_dict1 = {'I1':[0.0],'I2':[0.001332],'I3':[0.092362],'I4':[0.0],'I5':[0.034825],'I6':[0.0],'I7':[0.0],'I8':[0.673468],'I9':[0.0],'I10':[0.0],'I11':[0.0],'I12':[0.0],'I13':[0.0],'C1':[0],'C2':[4],'C3':[96],'C4':[146],'C5':[1],'C6':[4],'C7':[163],'C8':[1],'C9':[1],'C10':[72],'C11':[117],'C12':[127],'C13':[157],'C14':[7],'C15':[127],'C16':[126],'C17':[8],'C18':[66],'C19':[0],'C20':[0],'C21':[3],'C22':[0],'C23':[1],'C24':[96],'C25':[0],'C26':[0]}\n", + "fea_dict2 = {'I1':[0.0],'I2':[0.0],'I3':[0.00675],'I4':[0.402298],'I5':[0.059628],'I6':[0.117284],'I7':[0.003322],'I8':[0.714284],'I9':[0.154739],'I10':[0.0],'I11':[0.03125],'I12':[0.0],'I13':[0.343137],'C1':[11],'C2':[1],'C3':[98],'C4':[98],'C5':[1],'C6':[6],'C7':[179],'C8':[0],'C9':[1],'C10':[89],'C11':[58],'C12':[97],'C13':[79],'C14':[7],'C15':[72],'C16':[26],'C17':[7],'C18':[52],'C19':[0],'C20':[0],'C21':[47],'C22':[0],'C23':[7],'C24':[112],'C25':[0],'C26':[0]}\n", + "fea_dict3 = {'I1':[0.0],'I2':[0.000333],'I3':[0.00071],'I4':[0.137931],'I5':[0.003968],'I6':[0.077873],'I7':[0.019934],'I8':[0.714284],'I9':[0.505803],'I10':[0.0],'I11':[0.09375],'I12':[0.0],'I13':[0.17647],'C1':[0],'C2':[18],'C3':[39],'C4':[52],'C5':[3],'C6':[4],'C7':[140],'C8':[2],'C9':[1],'C10':[93],'C11':[31],'C12':[122],'C13':[16],'C14':[7],'C15':[129],'C16':[97],'C17':[8],'C18':[49],'C19':[0],'C20':[0],'C21':[25],'C22':[0],'C23':[6],'C24':[53],'C25':[0],'C26':[0]}\n", + "fea_dict4 = {'I1':[0.0],'I2':[0.004664],'I3':[0.000355],'I4':[0.045977],'I5':[0.033185],'I6':[0.094967],'I7':[0.016611],'I8':[0.081632],'I9':[0.028046],'I10':[0.0],'I11':[0.0625],'I12':[0.0],'I13':[0.039216],'C1':[0],'C2':[45],'C3':[7],'C4':[117],'C5':[1],'C6':[0],'C7':[164],'C8':[1],'C9':[0],'C10':[20],'C11':[61],'C12':[104],'C13':[36],'C14':[1],'C15':[43],'C16':[43],'C17':[8],'C18':[37],'C19':[0],'C20':[0],'C21':[156],'C22':[0],'C23':[0],'C24':[32],'C25':[0],'C26':[0]}\n", + "fea_dict5 = {'I1':[0.0],'I2':[0.000333],'I3':[0.036945],'I4':[0.310344],'I5':[0.003922],'I6':[0.067426],'I7':[0.013289],'I8':[0.65306],'I9':[0.035783],'I10':[0.0],'I11':[0.03125],'I12':[0.0],'I13':[0.264706],'C1':[0],'C2':[11],'C3':[59],'C4':[77],'C5':[1],'C6':[5],'C7':[18],'C8':[1],'C9':[1],'C10':[45],'C11':[171],'C12':[162],'C13':[96],'C14':[4],'C15':[36],'C16':[121],'C17':[8],'C18':[14],'C19':[5],'C20':[3],'C21':[9],'C22':[0],'C23':[0],'C24':[5],'C25':[1],'C26':[47]}\n", + "\n", + "# json str\n", + "data = json.dumps({\"signature_name\": \"serving_default\",\"instances\": [fea_dict1,fea_dict2,fea_dict3,fea_dict4,fea_dict5] })\n", + "# print(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'predictions': [{'logits': [-7.17679119], 'pred': [0.000763532356]},\n", + " {'logits': [-3.28641319], 'pred': [0.0360402502]},\n", + " {'logits': [-0.939480901], 'pred': [0.281005204]},\n", + " {'logits': [3.079597], 'pred': [0.956043184]},\n", + " {'logits': [-0.65539366], 'pred': [0.341775119]}]}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "!pip install -q requests\n", + "import requests \n", + "json_response = requests.post('http://localhost:8501/v1/models/raw_export_deepfm_model:predict', data=data)\n", + "predictions = json.loads(json_response.text)\n", + "predictions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### GRPC for raw tensor" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install tensorflow-serving-api=='1.12.0'" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:\n", + "The TensorFlow contrib module will not be included in TensorFlow 2.0.\n", + "For more information, please see:\n", + " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n", + " * https://github.com/tensorflow/addons\n", + " * https://github.com/tensorflow/io (for I/O related ops)\n", + "If you depend on functionality not listed there, please file an issue.\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:\n", + "The TensorFlow contrib module will not be included in TensorFlow 2.0.\n", + "For more information, please see:\n", + " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n", + " * https://github.com/tensorflow/addons\n", + " * https://github.com/tensorflow/io (for I/O related ops)\n", + "If you depend on functionality not listed there, please file an issue.\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "logits:[[-7.17679119]\n", + " [-3.28641319]\n", + " [-0.9394809 ]\n", + " [ 3.079597 ]\n", + " [-0.65539366]]\n", + "pred:[[7.63532356e-04]\n", + " [3.60402502e-02]\n", + " [2.81005204e-01]\n", + " [9.56043184e-01]\n", + " [3.41775119e-01]]\n" + ] + } + ], + "source": [ + "from __future__ import print_function\n", + "import grpc\n", + "import requests\n", + "import tensorflow as tf\n", + "import numpy as np\n", + "\n", + "from tensorflow_serving.apis import predict_pb2\n", + "from tensorflow_serving.apis import prediction_service_pb2_grpc\n", + "\n", + "channel = grpc.insecure_channel(target='0.0.0.0:8500')\n", + "stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)\n", + "\n", + "request = predict_pb2.PredictRequest()\n", + "request.model_spec.name = 'raw_export_deepfm_model'\n", + "request.model_spec.signature_name = 'serving_default'\n", + "\n", + " \n", + "request.inputs['I1'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5]))\n", + "request.inputs['I2'].CopyFrom(tf.contrib.util.make_tensor_proto([0.001332,0.0,0.000333,0.004664,0.000333], shape=[5]))\n", + "request.inputs['I3'].CopyFrom(tf.contrib.util.make_tensor_proto([0.092362,0.00675,0.00071,0.000355,0.036945], shape=[5]))\n", + "request.inputs['I4'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.402298,0.137931,0.045977,0.310344], shape=[5]))\n", + "request.inputs['I5'].CopyFrom(tf.contrib.util.make_tensor_proto([0.034825,0.059628,0.003968,0.033185,0.003922], shape=[5]))\n", + "request.inputs['I6'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.117284,0.077873,0.094967,0.067426], shape=[5]))\n", + "request.inputs['I7'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.003322,0.019934,0.016611,0.013289], shape=[5]))\n", + "request.inputs['I8'].CopyFrom(tf.contrib.util.make_tensor_proto([0.673468,0.714284,0.714284,0.081632,0.65306], shape=[5]))\n", + "request.inputs['I9'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.154739,0.505803,0.028046,0.035783], shape=[5]))\n", + "request.inputs['I10'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5]))\n", + "request.inputs['I11'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.03125,0.09375,0.0625,0.03125], shape=[5]))\n", + "request.inputs['I12'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5]))\n", + "request.inputs['I13'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.343137,0.17647,0.039216,0.264706], shape=[5]))\n", + "\n", + "request.inputs['C1'].CopyFrom(tf.contrib.util.make_tensor_proto([0,11,0,0,0], shape=[5]))\n", + "request.inputs['C2'].CopyFrom(tf.contrib.util.make_tensor_proto([4,1,18,45,11], shape=[5]))\n", + "request.inputs['C3'].CopyFrom(tf.contrib.util.make_tensor_proto([96,98,39,7,59], shape=[5]))\n", + "request.inputs['C4'].CopyFrom(tf.contrib.util.make_tensor_proto([146,98,52,117,77], shape=[5]))\n", + "request.inputs['C5'].CopyFrom(tf.contrib.util.make_tensor_proto([1,1,3,1,1], shape=[5]))\n", + "request.inputs['C6'].CopyFrom(tf.contrib.util.make_tensor_proto([4,6,4,0,5], shape=[5]))\n", + "request.inputs['C7'].CopyFrom(tf.contrib.util.make_tensor_proto([163,179,140,164,18], shape=[5]))\n", + "request.inputs['C8'].CopyFrom(tf.contrib.util.make_tensor_proto([1,0,2,1,1], shape=[5]))\n", + "request.inputs['C9'].CopyFrom(tf.contrib.util.make_tensor_proto([1,1,1,0,1], shape=[5]))\n", + "request.inputs['C10'].CopyFrom(tf.contrib.util.make_tensor_proto([72,89,93,20,45], shape=[5]))\n", + "request.inputs['C11'].CopyFrom(tf.contrib.util.make_tensor_proto([117,58,31,61,171], shape=[5]))\n", + "request.inputs['C12'].CopyFrom(tf.contrib.util.make_tensor_proto([127,97,122,104,162], shape=[5]))\n", + "request.inputs['C13'].CopyFrom(tf.contrib.util.make_tensor_proto([157,79,16,36,96], shape=[5]))\n", + "request.inputs['C14'].CopyFrom(tf.contrib.util.make_tensor_proto([7,7,7,1,4], shape=[5]))\n", + "request.inputs['C15'].CopyFrom(tf.contrib.util.make_tensor_proto([127,72,129,43,36], shape=[5]))\n", + "request.inputs['C16'].CopyFrom(tf.contrib.util.make_tensor_proto([126,26,97,43,121], shape=[5]))\n", + "request.inputs['C17'].CopyFrom(tf.contrib.util.make_tensor_proto([8,7,8,8,8], shape=[5]))\n", + "request.inputs['C18'].CopyFrom(tf.contrib.util.make_tensor_proto([66,52,49,37,14], shape=[5]))\n", + "request.inputs['C19'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,5], shape=[5]))\n", + "request.inputs['C20'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,3], shape=[5]))\n", + "request.inputs['C21'].CopyFrom(tf.contrib.util.make_tensor_proto([3,47,25,156,9], shape=[5]))\n", + "request.inputs['C22'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,0], shape=[5]))\n", + "request.inputs['C23'].CopyFrom(tf.contrib.util.make_tensor_proto([1,7,6,0,0], shape=[5]))\n", + "request.inputs['C24'].CopyFrom(tf.contrib.util.make_tensor_proto([96,112,53,32,5], shape=[5]))\n", + "request.inputs['C25'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,1], shape=[5]))\n", + "request.inputs['C26'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,47], shape=[5]))\n", + "\n", + "\n", + "result = stub.Predict(request, 5.0) # 5 secs timeout\n", + "\n", + "outputs_tensor_proto = result.outputs[\"logits\"]\n", + "shape = tf.TensorShape(outputs_tensor_proto.tensor_shape)\n", + "outputs = tf.constant(list(outputs_tensor_proto.float_val), shape=shape)\n", + "outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list())\n", + "\n", + "print(f'logits:{outputs}')\n", + "\n", + "outputs_tensor_proto = result.outputs[\"pred\"]\n", + "shape = tf.TensorShape(outputs_tensor_proto.tensor_shape)\n", + "outputs = tf.constant(list(outputs_tensor_proto.float_val), shape=shape)\n", + "outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list())\n", + "\n", + "print(f'pred:{outputs}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 86f7e5c636c568ab160c918b92e04daa662ca6e8 Mon Sep 17 00:00:00 2001 From: louxuezheng Date: Sat, 27 Jun 2020 19:28:44 +0800 Subject: [PATCH 3/3] up --- ...estimator_classification_raw_serving.ipynb | 988 ------------------ ...un_estimator_classification_raw_serving.py | 196 ++++ 2 files changed, 196 insertions(+), 988 deletions(-) delete mode 100644 examples/estimator_serving/run_estimator_classification_raw_serving.ipynb create mode 100644 examples/estimator_serving/run_estimator_classification_raw_serving.py diff --git a/examples/estimator_serving/run_estimator_classification_raw_serving.ipynb b/examples/estimator_serving/run_estimator_classification_raw_serving.ipynb deleted file mode 100644 index 60996c30..00000000 --- a/examples/estimator_serving/run_estimator_classification_raw_serving.ipynb +++ /dev/null @@ -1,988 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import tensorflow as tf\n", - "from sklearn.metrics import log_loss, roc_auc_score\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.preprocessing import LabelEncoder, MinMaxScaler\n", - "\n", - "from deepctr.estimator.inputs import input_fn_pandas\n", - "from deepctr.estimator import DeepFMEstimator" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "data = pd.read_csv('../criteo_sample.txt')\n", - "sparse_features = ['C' + str(i) for i in range(1, 27)]\n", - "dense_features = ['I' + str(i) for i in range(1, 14)]\n", - "data[sparse_features] = data[sparse_features].fillna('-1', )\n", - "data[dense_features] = data[dense_features].fillna(0, )\n", - "target = ['label']\n", - "df = data.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "def get_integer_mapping(le):\n", - " '''\n", - " Return a dict mapping labels to their integer values from an SKlearn LabelEncoder\n", - " le = a fitted SKlearn LabelEncoder\n", - " '''\n", - " res = {}\n", - " for idx, val in enumerate(le.classes_):\n", - " res.update({val:idx})\n", - "\n", - " return res" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# 1.Label Encoding for sparse features,and do simple Transformation for dense features\n", - "feat_index_dict = {} \n", - "for feat in sparse_features:\n", - " lbe = LabelEncoder()\n", - " data[feat] = lbe.fit_transform(data[feat])\n", - " feat_index_dict.update({feat:get_integer_mapping(lbe)})\n", - "\n", - "# save min max value for each dense feature \n", - "s_max,s_min = data[dense_features].max(axis=0),data[dense_features].min(axis=0)\n", - "pd.concat([s_max, s_min],keys=['max','min'],axis=1).to_csv(f\"max_min.txt\",sep=\"\\t\")\n", - " \n", - "mms = MinMaxScaler(feature_range=(0, 1))\n", - "data[dense_features] = mms.fit_transform(data[dense_features])\n", - "\n", - "# save category features index for serving stage\n", - "import json\n", - "with open(\"feat_index_dict.json\", 'w') as fo:\n", - " json.dump(feat_index_dict, fo)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# 2.count #unique features for each sparse field,and record dense feature field name\n", - "dnn_feature_columns = []\n", - "linear_feature_columns = []\n", - "for i, feat in enumerate(sparse_features):\n", - " dnn_feature_columns.append(tf.feature_column.embedding_column(\n", - " tf.feature_column.categorical_column_with_identity(feat, data[feat].nunique()), 4))\n", - " linear_feature_columns.append(tf.feature_column.categorical_column_with_identity(feat, data[feat].nunique()))\n", - "for feat in dense_features:\n", - " dnn_feature_columns.append(tf.feature_column.numeric_column(feat))\n", - " linear_feature_columns.append(tf.feature_column.numeric_column(feat))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/inputs.py:28: The name tf.estimator.inputs is deprecated. Please use tf.compat.v1.estimator.inputs instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/inputs.py:28: The name tf.estimator.inputs.pandas_input_fn is deprecated. Please use tf.compat.v1.estimator.inputs.pandas_input_fn instead.\n", - "\n" - ] - } - ], - "source": [ - "# 3.generate input data for model\n", - "train, test = train_test_split(data, test_size=0.2)\n", - "# Not setting default value for continuous feature. filled with mean.\n", - "train_model_input = input_fn_pandas(train,sparse_features+dense_features,'label')\n", - "test_model_input = input_fn_pandas(test,sparse_features+dense_features,None)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Using default config.\n", - "WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmptmz7m48o\n", - "INFO:tensorflow:Using config: {'_model_dir': '/tmp/tmptmz7m48o', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true\n", - "graph_options {\n", - " rewrite_options {\n", - " meta_optimizer_iterations: ONE\n", - " }\n", - "}\n", - ", '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_experimental_max_worker_delay_secs': None, '_session_creation_timeout_secs': 7200, '_service': None, '_cluster_spec': , '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/training/training_util.py:236: Variable.initialized_value (from tensorflow.python.ops.variables) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Use Variable.read_value. Variables in 2.X are initialized automatically both in eager and graph (inside tf.defun) contexts.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/inputs/queues/feeding_queue_runner.py:62: QueueRunner.__init__ (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "To construct input pipelines, use the `tf.data` module.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/inputs/queues/feeding_functions.py:500: add_queue_runner (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "To construct input pipelines, use the `tf.data` module.\n", - "INFO:tensorflow:Calling model_fn.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:155: The name tf.variable_scope is deprecated. Please use tf.compat.v1.variable_scope instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/feature_column.py:11: The name tf.feature_column.linear_model is deprecated. Please use tf.compat.v1.feature_column.linear_model instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:554: IdentityCategoricalColumn._num_buckets (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:556: Layer.add_variable (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use `layer.add_weight` method instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "If using Keras pass *_constraint arguments to layers.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:2040: IdentityCategoricalColumn._get_sparse_tensors (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:2158: IdentityCategoricalColumn._transform_feature (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/ops/embedding_ops.py:802: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:558: NumericColumn._variable_shape (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:1941: NumericColumn._get_dense_tensor (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:2158: NumericColumn._transform_feature (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:176: The name tf.GraphKeys is deprecated. Please use tf.compat.v1.GraphKeys instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:169: The name tf.get_collection is deprecated. Please use tf.compat.v1.get_collection instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/feature_column.py:25: The name tf.losses.add_loss is deprecated. Please use tf.compat.v1.losses.add_loss instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:190: The name tf.feature_column.input_layer is deprecated. Please use tf.compat.v1.feature_column.input_layer instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:206: EmbeddingColumn._get_dense_tensor (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/feature_column/feature_column.py:207: EmbeddingColumn._variable_shape (from tensorflow.python.feature_column.feature_column_v2) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "The old _FeatureColumn APIs are being deprecated. Please use the new FeatureColumn APIs instead.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/layers/utils.py:164: calling reduce_sum_v1 (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "keep_dims is deprecated, use keepdims instead\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:95: The name tf.losses.get_regularization_loss is deprecated. Please use tf.compat.v1.losses.get_regularization_loss instead.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:131: The name tf.train.get_global_step is deprecated. Please use tf.compat.v1.train.get_global_step instead.\n", - "\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/training/adagrad.py:76: calling Constant.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Call initializer instance with the dtype argument instead of passing it to the constructor\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/deepctr/estimator/utils.py:147: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n", - "\n", - "INFO:tensorflow:Done calling model_fn.\n", - "INFO:tensorflow:Create CheckpointSaverHook.\n", - "INFO:tensorflow:Graph was finalized.\n", - "INFO:tensorflow:Running local_init_op.\n", - "INFO:tensorflow:Done running local_init_op.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/training/monitored_session.py:882: start_queue_runners (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "To construct input pipelines, use the `tf.data` module.\n", - "INFO:tensorflow:Saving checkpoints for 0 into /tmp/tmptmz7m48o/model.ckpt.\n", - "INFO:tensorflow:loss = 1685.0953, step = 1\n", - "INFO:tensorflow:Saving checkpoints for 1 into /tmp/tmptmz7m48o/model.ckpt.\n", - "INFO:tensorflow:Loss for final step: 1685.0953.\n", - "INFO:tensorflow:Calling model_fn.\n", - "INFO:tensorflow:Done calling model_fn.\n", - "INFO:tensorflow:Graph was finalized.\n", - "INFO:tensorflow:Restoring parameters from /tmp/tmptmz7m48o/model.ckpt-1\n", - "INFO:tensorflow:Running local_init_op.\n", - "INFO:tensorflow:Done running local_init_op.\n", - "test LogLoss 1.2863\n", - "test AUC 0.7083\n" - ] - } - ], - "source": [ - "# 4.Define Model,train,predict and evaluate\n", - "model = DeepFMEstimator(linear_feature_columns, dnn_feature_columns)\n", - "model.train(train_model_input)\n", - "pred_ans_iter = model.predict(test_model_input)\n", - "pred_ans = list(map(lambda x:x['pred'],pred_ans_iter))\n", - "#\n", - "print(\"test LogLoss\", round(log_loss(test[target].values, pred_ans), 4))\n", - "print(\"test AUC\", round(roc_auc_score(test[target].values, pred_ans), 4))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:From :11: Estimator.export_savedmodel (from tensorflow_estimator.python.estimator.estimator) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "This function has been renamed, use `export_saved_model` instead.\n", - "INFO:tensorflow:Calling model_fn.\n", - "INFO:tensorflow:Done calling model_fn.\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/saved_model/signature_def_utils_impl.py:201: build_tensor_info (from tensorflow.python.saved_model.utils_impl) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.utils.build_tensor_info or tf.compat.v1.saved_model.build_tensor_info.\n", - "INFO:tensorflow:Signatures INCLUDED in export for Classify: None\n", - "INFO:tensorflow:Signatures INCLUDED in export for Regress: None\n", - "INFO:tensorflow:Signatures INCLUDED in export for Predict: ['predict', 'serving_default']\n", - "INFO:tensorflow:Signatures INCLUDED in export for Train: None\n", - "INFO:tensorflow:Signatures INCLUDED in export for Eval: None\n", - "INFO:tensorflow:Restoring parameters from /tmp/tmptmz7m48o/model.ckpt-1\n", - "INFO:tensorflow:Assets added to graph.\n", - "INFO:tensorflow:No assets to write.\n", - "INFO:tensorflow:SavedModel written to: ./serving_raw/temp-b'1593253204'/saved_model.pb\n" - ] - }, - { - "data": { - "text/plain": [ - "b'./serving_raw/1593253204'" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 5.saved Model by build_raw_serving_input\n", - "def serving_input_receiver_fn():\n", - " feature_map = {}\n", - " for i in range(len(sparse_features)):\n", - " feature_map[sparse_features[i]] = tf.placeholder(tf.int32,shape=(None, ),name='{}'.format(sparse_features[i]))\n", - " for i in range(len(dense_features)):\n", - " feature_map[dense_features[i]] = tf.placeholder(tf.float32,shape=(None, ),name='{}'.format(dense_features[i]))\n", - " return tf.estimator.export.build_raw_serving_input_receiver_fn(feature_map)\n", - " \n", - "model.export_savedmodel(export_dir_base='./serving_raw/',\n", - " serving_input_receiver_fn=serving_input_receiver_fn())" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:\n", - "\n", - "signature_def['predict']:\n", - " The given SavedModel SignatureDef contains the following input(s):\n", - " inputs['C1'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C1:0\n", - " inputs['C10'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C10:0\n", - " inputs['C11'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C11:0\n", - " inputs['C12'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C12:0\n", - " inputs['C13'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C13:0\n", - " inputs['C14'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C14:0\n", - " inputs['C15'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C15:0\n", - " inputs['C16'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C16:0\n", - " inputs['C17'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C17:0\n", - " inputs['C18'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C18:0\n", - " inputs['C19'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C19:0\n", - " inputs['C2'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C2:0\n", - " inputs['C20'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C20:0\n", - " inputs['C21'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C21:0\n", - " inputs['C22'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C22:0\n", - " inputs['C23'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C23:0\n", - " inputs['C24'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C24:0\n", - " inputs['C25'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C25:0\n", - " inputs['C26'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C26:0\n", - " inputs['C3'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C3:0\n", - " inputs['C4'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C4:0\n", - " inputs['C5'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C5:0\n", - " inputs['C6'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C6:0\n", - " inputs['C7'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C7:0\n", - " inputs['C8'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C8:0\n", - " inputs['C9'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C9:0\n", - " inputs['I1'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I1:0\n", - " inputs['I10'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I10:0\n", - " inputs['I11'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I11:0\n", - " inputs['I12'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I12:0\n", - " inputs['I13'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I13:0\n", - " inputs['I2'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I2:0\n", - " inputs['I3'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I3:0\n", - " inputs['I4'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I4:0\n", - " inputs['I5'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I5:0\n", - " inputs['I6'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I6:0\n", - " inputs['I7'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I7:0\n", - " inputs['I8'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I8:0\n", - " inputs['I9'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I9:0\n", - " The given SavedModel SignatureDef contains the following output(s):\n", - " outputs['logits'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1, 1)\n", - " name: head/Reshape:0\n", - " outputs['pred'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1, 1)\n", - " name: head/Sigmoid:0\n", - " Method name is: tensorflow/serving/predict\n", - "\n", - "signature_def['serving_default']:\n", - " The given SavedModel SignatureDef contains the following input(s):\n", - " inputs['C1'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C1:0\n", - " inputs['C10'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C10:0\n", - " inputs['C11'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C11:0\n", - " inputs['C12'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C12:0\n", - " inputs['C13'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C13:0\n", - " inputs['C14'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C14:0\n", - " inputs['C15'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C15:0\n", - " inputs['C16'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C16:0\n", - " inputs['C17'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C17:0\n", - " inputs['C18'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C18:0\n", - " inputs['C19'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C19:0\n", - " inputs['C2'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C2:0\n", - " inputs['C20'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C20:0\n", - " inputs['C21'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C21:0\n", - " inputs['C22'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C22:0\n", - " inputs['C23'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C23:0\n", - " inputs['C24'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C24:0\n", - " inputs['C25'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C25:0\n", - " inputs['C26'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C26:0\n", - " inputs['C3'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C3:0\n", - " inputs['C4'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C4:0\n", - " inputs['C5'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C5:0\n", - " inputs['C6'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C6:0\n", - " inputs['C7'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C7:0\n", - " inputs['C8'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C8:0\n", - " inputs['C9'] tensor_info:\n", - " dtype: DT_INT32\n", - " shape: (-1)\n", - " name: C9:0\n", - " inputs['I1'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I1:0\n", - " inputs['I10'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I10:0\n", - " inputs['I11'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I11:0\n", - " inputs['I12'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I12:0\n", - " inputs['I13'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I13:0\n", - " inputs['I2'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I2:0\n", - " inputs['I3'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I3:0\n", - " inputs['I4'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I4:0\n", - " inputs['I5'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I5:0\n", - " inputs['I6'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I6:0\n", - " inputs['I7'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I7:0\n", - " inputs['I8'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I8:0\n", - " inputs['I9'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1)\n", - " name: I9:0\n", - " The given SavedModel SignatureDef contains the following output(s):\n", - " outputs['logits'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1, 1)\n", - " name: head/Reshape:0\n", - " outputs['pred'] tensor_info:\n", - " dtype: DT_FLOAT\n", - " shape: (-1, 1)\n", - " name: head/Sigmoid:0\n", - " Method name is: tensorflow/serving/predict\n" - ] - } - ], - "source": [ - "export_path = './serving_raw/1593253204'\n", - "!saved_model_cli show --dir {export_path} --all" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2020-06-27 18:20:26.313669: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n", - "2020-06-27 18:20:26.313695: E tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit: UNKNOWN ERROR (303)\n", - "2020-06-27 18:20:26.313709: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (mi-OptiPlex-9020): /proc/driver/nvidia/version does not exist\n", - "2020-06-27 18:20:26.313898: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA\n", - "2020-06-27 18:20:26.334813: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3591625000 Hz\n", - "2020-06-27 18:20:26.335290: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5557a14ef3e0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:\n", - "2020-06-27 18:20:26.335320: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version\n", - "WARNING:tensorflow:From /home/mi/anaconda3/envs/tf1x/lib/python3.6/site-packages/tensorflow_core/python/tools/saved_model_cli.py:420: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.loader.load or tf.compat.v1.saved_model.load. There will be a new function for importing SavedModels in Tensorflow 2.0.\n", - "Result for output key logits:\n", - "[[-7.176791 ]\n", - " [-3.2864132 ]\n", - " [-0.9394809 ]\n", - " [ 3.079597 ]\n", - " [-0.65539366]]\n", - "Result for output key pred:\n", - "[[7.6353236e-04]\n", - " [3.6040250e-02]\n", - " [2.8100520e-01]\n", - " [9.5604318e-01]\n", - " [3.4177512e-01]]\n" - ] - } - ], - "source": [ - "!saved_model_cli run --dir {export_path} --tag_set serve --signature_def \"serving_default\" --input_expr 'I1=[0.0,0.0,0.0,0.0,0.0];I2=[0.001332,0.0,0.000333,0.004664,0.000333];I3=[0.092362,0.00675,0.00071,0.000355,0.036945];I4=[0.0,0.402298,0.137931,0.045977,0.310344];I5=[0.034825,0.059628,0.003968,0.033185,0.003922];I6=[0.0,0.117284,0.077873,0.094967,0.067426];I7=[0.0,0.003322,0.019934,0.016611,0.013289];I8=[0.673468,0.714284,0.714284,0.081632,0.65306];I9=[0.0,0.154739,0.505803,0.028046,0.035783];I10=[0.0,0.0,0.0,0.0,0.0];I11=[0.0,0.03125,0.09375,0.0625,0.03125];I12=[0.0,0.0,0.0,0.0,0.0];I13=[0.0,0.343137,0.17647,0.039216,0.264706];C1=[0,11,0,0,0];C2=[4,1,18,45,11];C3=[96,98,39,7,59];C4=[146,98,52,117,77];C5=[1,1,3,1,1];C6=[4,6,4,0,5];C7=[163,179,140,164,18];C8=[1,0,2,1,1];C9=[1,1,1,0,1];C10=[72,89,93,20,45];C11=[117,58,31,61,171];C12=[127,97,122,104,162];C13=[157,79,16,36,96];C14=[7,7,7,1,4];C15=[127,72,129,43,36];C16=[126,26,97,43,121];C17=[8,7,8,8,8];C18=[66,52,49,37,14];C19=[0,0,0,0,5];C20=[0,0,0,0,3];C21=[3,47,25,156,9];C22=[0,0,0,0,0];C23=[1,7,6,0,0];C24=[96,112,53,32,5];C25=[0,0,0,0,1];C26=[0,0,0,0,47]'" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# local pc\n", - "import os\n", - "os.environ[\"MODEL_DIR\"] = '/home/mi/openwork/sub/DeepCTR/examples/estimator_serving/serving_raw'" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - " %%bash --bg \n", - "nohup tensorflow_model_server \\\n", - "--port=8500 \\\n", - "--rest_api_port=8501 \\\n", - "--model_name=raw_export_deepfm_model \\\n", - "--model_base_path=${MODEL_DIR} >server.log 2>&1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### make some samples" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# read for category feature\n", - "with open(\"feat_index_dict.json\") as fi:\n", - " sparse_dict = json.load(fi)\n", - " \n", - "# load minmax dict for each dense feature\n", - "df_dense_dict = pd.read_csv(\"./max_min.txt\",sep=\"\\t\",names=['fea_name','max','min'],skiprows=1)\n", - "dense_dict = dict(zip(df_dense_dict['fea_name'],zip(df_dense_dict['max'], df_dense_dict['min'])))\n", - "def get_normal(k,v):\n", - " return round((v - dense_dict[k][1])/(dense_dict[k][0]-dense_dict[k][1]+1e-4),6)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "example_insts = []\n", - "for index, row in df.iterrows():\n", - "# print(row['I1'],row['C2'])\n", - " inst_dict = {}\n", - " for feat in dense_features:\n", - " normal_value = get_normal(feat,row[feat])\n", - " inst_dict.update({feat:normal_value})\n", - " for feat in sparse_features:\n", - " inst_dict.update({feat:sparse_dict[feat][row[feat]]})\n", - " print(inst_dict)\n", - " print(\"-\"*50)\n", - " example_insts.append(inst_dict)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### REST for raw tensor" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "\n", - "fea_dict1 = {'I1':[0.0],'I2':[0.001332],'I3':[0.092362],'I4':[0.0],'I5':[0.034825],'I6':[0.0],'I7':[0.0],'I8':[0.673468],'I9':[0.0],'I10':[0.0],'I11':[0.0],'I12':[0.0],'I13':[0.0],'C1':[0],'C2':[4],'C3':[96],'C4':[146],'C5':[1],'C6':[4],'C7':[163],'C8':[1],'C9':[1],'C10':[72],'C11':[117],'C12':[127],'C13':[157],'C14':[7],'C15':[127],'C16':[126],'C17':[8],'C18':[66],'C19':[0],'C20':[0],'C21':[3],'C22':[0],'C23':[1],'C24':[96],'C25':[0],'C26':[0]}\n", - "fea_dict2 = {'I1':[0.0],'I2':[0.0],'I3':[0.00675],'I4':[0.402298],'I5':[0.059628],'I6':[0.117284],'I7':[0.003322],'I8':[0.714284],'I9':[0.154739],'I10':[0.0],'I11':[0.03125],'I12':[0.0],'I13':[0.343137],'C1':[11],'C2':[1],'C3':[98],'C4':[98],'C5':[1],'C6':[6],'C7':[179],'C8':[0],'C9':[1],'C10':[89],'C11':[58],'C12':[97],'C13':[79],'C14':[7],'C15':[72],'C16':[26],'C17':[7],'C18':[52],'C19':[0],'C20':[0],'C21':[47],'C22':[0],'C23':[7],'C24':[112],'C25':[0],'C26':[0]}\n", - "fea_dict3 = {'I1':[0.0],'I2':[0.000333],'I3':[0.00071],'I4':[0.137931],'I5':[0.003968],'I6':[0.077873],'I7':[0.019934],'I8':[0.714284],'I9':[0.505803],'I10':[0.0],'I11':[0.09375],'I12':[0.0],'I13':[0.17647],'C1':[0],'C2':[18],'C3':[39],'C4':[52],'C5':[3],'C6':[4],'C7':[140],'C8':[2],'C9':[1],'C10':[93],'C11':[31],'C12':[122],'C13':[16],'C14':[7],'C15':[129],'C16':[97],'C17':[8],'C18':[49],'C19':[0],'C20':[0],'C21':[25],'C22':[0],'C23':[6],'C24':[53],'C25':[0],'C26':[0]}\n", - "fea_dict4 = {'I1':[0.0],'I2':[0.004664],'I3':[0.000355],'I4':[0.045977],'I5':[0.033185],'I6':[0.094967],'I7':[0.016611],'I8':[0.081632],'I9':[0.028046],'I10':[0.0],'I11':[0.0625],'I12':[0.0],'I13':[0.039216],'C1':[0],'C2':[45],'C3':[7],'C4':[117],'C5':[1],'C6':[0],'C7':[164],'C8':[1],'C9':[0],'C10':[20],'C11':[61],'C12':[104],'C13':[36],'C14':[1],'C15':[43],'C16':[43],'C17':[8],'C18':[37],'C19':[0],'C20':[0],'C21':[156],'C22':[0],'C23':[0],'C24':[32],'C25':[0],'C26':[0]}\n", - "fea_dict5 = {'I1':[0.0],'I2':[0.000333],'I3':[0.036945],'I4':[0.310344],'I5':[0.003922],'I6':[0.067426],'I7':[0.013289],'I8':[0.65306],'I9':[0.035783],'I10':[0.0],'I11':[0.03125],'I12':[0.0],'I13':[0.264706],'C1':[0],'C2':[11],'C3':[59],'C4':[77],'C5':[1],'C6':[5],'C7':[18],'C8':[1],'C9':[1],'C10':[45],'C11':[171],'C12':[162],'C13':[96],'C14':[4],'C15':[36],'C16':[121],'C17':[8],'C18':[14],'C19':[5],'C20':[3],'C21':[9],'C22':[0],'C23':[0],'C24':[5],'C25':[1],'C26':[47]}\n", - "\n", - "# json str\n", - "data = json.dumps({\"signature_name\": \"serving_default\",\"instances\": [fea_dict1,fea_dict2,fea_dict3,fea_dict4,fea_dict5] })\n", - "# print(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'predictions': [{'logits': [-7.17679119], 'pred': [0.000763532356]},\n", - " {'logits': [-3.28641319], 'pred': [0.0360402502]},\n", - " {'logits': [-0.939480901], 'pred': [0.281005204]},\n", - " {'logits': [3.079597], 'pred': [0.956043184]},\n", - " {'logits': [-0.65539366], 'pred': [0.341775119]}]}" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "!pip install -q requests\n", - "import requests \n", - "json_response = requests.post('http://localhost:8501/v1/models/raw_export_deepfm_model:predict', data=data)\n", - "predictions = json.loads(json_response.text)\n", - "predictions" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### GRPC for raw tensor" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#!pip install tensorflow-serving-api=='1.12.0'" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:\n", - "The TensorFlow contrib module will not be included in TensorFlow 2.0.\n", - "For more information, please see:\n", - " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n", - " * https://github.com/tensorflow/addons\n", - " * https://github.com/tensorflow/io (for I/O related ops)\n", - "If you depend on functionality not listed there, please file an issue.\n", - "\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:\n", - "The TensorFlow contrib module will not be included in TensorFlow 2.0.\n", - "For more information, please see:\n", - " * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n", - " * https://github.com/tensorflow/addons\n", - " * https://github.com/tensorflow/io (for I/O related ops)\n", - "If you depend on functionality not listed there, please file an issue.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "logits:[[-7.17679119]\n", - " [-3.28641319]\n", - " [-0.9394809 ]\n", - " [ 3.079597 ]\n", - " [-0.65539366]]\n", - "pred:[[7.63532356e-04]\n", - " [3.60402502e-02]\n", - " [2.81005204e-01]\n", - " [9.56043184e-01]\n", - " [3.41775119e-01]]\n" - ] - } - ], - "source": [ - "from __future__ import print_function\n", - "import grpc\n", - "import requests\n", - "import tensorflow as tf\n", - "import numpy as np\n", - "\n", - "from tensorflow_serving.apis import predict_pb2\n", - "from tensorflow_serving.apis import prediction_service_pb2_grpc\n", - "\n", - "channel = grpc.insecure_channel(target='0.0.0.0:8500')\n", - "stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)\n", - "\n", - "request = predict_pb2.PredictRequest()\n", - "request.model_spec.name = 'raw_export_deepfm_model'\n", - "request.model_spec.signature_name = 'serving_default'\n", - "\n", - " \n", - "request.inputs['I1'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5]))\n", - "request.inputs['I2'].CopyFrom(tf.contrib.util.make_tensor_proto([0.001332,0.0,0.000333,0.004664,0.000333], shape=[5]))\n", - "request.inputs['I3'].CopyFrom(tf.contrib.util.make_tensor_proto([0.092362,0.00675,0.00071,0.000355,0.036945], shape=[5]))\n", - "request.inputs['I4'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.402298,0.137931,0.045977,0.310344], shape=[5]))\n", - "request.inputs['I5'].CopyFrom(tf.contrib.util.make_tensor_proto([0.034825,0.059628,0.003968,0.033185,0.003922], shape=[5]))\n", - "request.inputs['I6'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.117284,0.077873,0.094967,0.067426], shape=[5]))\n", - "request.inputs['I7'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.003322,0.019934,0.016611,0.013289], shape=[5]))\n", - "request.inputs['I8'].CopyFrom(tf.contrib.util.make_tensor_proto([0.673468,0.714284,0.714284,0.081632,0.65306], shape=[5]))\n", - "request.inputs['I9'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.154739,0.505803,0.028046,0.035783], shape=[5]))\n", - "request.inputs['I10'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5]))\n", - "request.inputs['I11'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.03125,0.09375,0.0625,0.03125], shape=[5]))\n", - "request.inputs['I12'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5]))\n", - "request.inputs['I13'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.343137,0.17647,0.039216,0.264706], shape=[5]))\n", - "\n", - "request.inputs['C1'].CopyFrom(tf.contrib.util.make_tensor_proto([0,11,0,0,0], shape=[5]))\n", - "request.inputs['C2'].CopyFrom(tf.contrib.util.make_tensor_proto([4,1,18,45,11], shape=[5]))\n", - "request.inputs['C3'].CopyFrom(tf.contrib.util.make_tensor_proto([96,98,39,7,59], shape=[5]))\n", - "request.inputs['C4'].CopyFrom(tf.contrib.util.make_tensor_proto([146,98,52,117,77], shape=[5]))\n", - "request.inputs['C5'].CopyFrom(tf.contrib.util.make_tensor_proto([1,1,3,1,1], shape=[5]))\n", - "request.inputs['C6'].CopyFrom(tf.contrib.util.make_tensor_proto([4,6,4,0,5], shape=[5]))\n", - "request.inputs['C7'].CopyFrom(tf.contrib.util.make_tensor_proto([163,179,140,164,18], shape=[5]))\n", - "request.inputs['C8'].CopyFrom(tf.contrib.util.make_tensor_proto([1,0,2,1,1], shape=[5]))\n", - "request.inputs['C9'].CopyFrom(tf.contrib.util.make_tensor_proto([1,1,1,0,1], shape=[5]))\n", - "request.inputs['C10'].CopyFrom(tf.contrib.util.make_tensor_proto([72,89,93,20,45], shape=[5]))\n", - "request.inputs['C11'].CopyFrom(tf.contrib.util.make_tensor_proto([117,58,31,61,171], shape=[5]))\n", - "request.inputs['C12'].CopyFrom(tf.contrib.util.make_tensor_proto([127,97,122,104,162], shape=[5]))\n", - "request.inputs['C13'].CopyFrom(tf.contrib.util.make_tensor_proto([157,79,16,36,96], shape=[5]))\n", - "request.inputs['C14'].CopyFrom(tf.contrib.util.make_tensor_proto([7,7,7,1,4], shape=[5]))\n", - "request.inputs['C15'].CopyFrom(tf.contrib.util.make_tensor_proto([127,72,129,43,36], shape=[5]))\n", - "request.inputs['C16'].CopyFrom(tf.contrib.util.make_tensor_proto([126,26,97,43,121], shape=[5]))\n", - "request.inputs['C17'].CopyFrom(tf.contrib.util.make_tensor_proto([8,7,8,8,8], shape=[5]))\n", - "request.inputs['C18'].CopyFrom(tf.contrib.util.make_tensor_proto([66,52,49,37,14], shape=[5]))\n", - "request.inputs['C19'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,5], shape=[5]))\n", - "request.inputs['C20'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,3], shape=[5]))\n", - "request.inputs['C21'].CopyFrom(tf.contrib.util.make_tensor_proto([3,47,25,156,9], shape=[5]))\n", - "request.inputs['C22'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,0], shape=[5]))\n", - "request.inputs['C23'].CopyFrom(tf.contrib.util.make_tensor_proto([1,7,6,0,0], shape=[5]))\n", - "request.inputs['C24'].CopyFrom(tf.contrib.util.make_tensor_proto([96,112,53,32,5], shape=[5]))\n", - "request.inputs['C25'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,1], shape=[5]))\n", - "request.inputs['C26'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,47], shape=[5]))\n", - "\n", - "\n", - "result = stub.Predict(request, 5.0) # 5 secs timeout\n", - "\n", - "outputs_tensor_proto = result.outputs[\"logits\"]\n", - "shape = tf.TensorShape(outputs_tensor_proto.tensor_shape)\n", - "outputs = tf.constant(list(outputs_tensor_proto.float_val), shape=shape)\n", - "outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list())\n", - "\n", - "print(f'logits:{outputs}')\n", - "\n", - "outputs_tensor_proto = result.outputs[\"pred\"]\n", - "shape = tf.TensorShape(outputs_tensor_proto.tensor_shape)\n", - "outputs = tf.constant(list(outputs_tensor_proto.float_val), shape=shape)\n", - "outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list())\n", - "\n", - "print(f'pred:{outputs}')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/estimator_serving/run_estimator_classification_raw_serving.py b/examples/estimator_serving/run_estimator_classification_raw_serving.py new file mode 100644 index 00000000..d1bbefb5 --- /dev/null +++ b/examples/estimator_serving/run_estimator_classification_raw_serving.py @@ -0,0 +1,196 @@ +import pandas as pd +import tensorflow as tf +import json +import requests +import grpc +import numpy as np +from sklearn.metrics import log_loss, roc_auc_score +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import LabelEncoder, MinMaxScaler + +from deepctr.estimator.inputs import input_fn_pandas +from deepctr.estimator import DeepFMEstimator + +from __future__ import print_function +from tensorflow_serving.apis import predict_pb2 +from tensorflow_serving.apis import prediction_service_pb2_grpc + +def get_integer_mapping(le): + ''' + Return a dict mapping labels to their integer values from an SKlearn LabelEncoder + le = a fitted SKlearn LabelEncoder + ''' + res = {} + for idx, val in enumerate(le.classes_): + res.update({val:idx}) + return res + + +def test_REST_serving(): + ''' + test rest api + ''' + fea_dict1 = {'I1':[0.0],'I2':[0.001332],'I3':[0.092362],'I4':[0.0],'I5':[0.034825],'I6':[0.0],'I7':[0.0],'I8':[0.673468],'I9':[0.0],'I10':[0.0],'I11':[0.0],'I12':[0.0],'I13':[0.0],'C1':[0],'C2':[4],'C3':[96],'C4':[146],'C5':[1],'C6':[4],'C7':[163],'C8':[1],'C9':[1],'C10':[72],'C11':[117],'C12':[127],'C13':[157],'C14':[7],'C15':[127],'C16':[126],'C17':[8],'C18':[66],'C19':[0],'C20':[0],'C21':[3],'C22':[0],'C23':[1],'C24':[96],'C25':[0],'C26':[0]} + fea_dict2 = {'I1':[0.0],'I2':[0.0],'I3':[0.00675],'I4':[0.402298],'I5':[0.059628],'I6':[0.117284],'I7':[0.003322],'I8':[0.714284],'I9':[0.154739],'I10':[0.0],'I11':[0.03125],'I12':[0.0],'I13':[0.343137],'C1':[11],'C2':[1],'C3':[98],'C4':[98],'C5':[1],'C6':[6],'C7':[179],'C8':[0],'C9':[1],'C10':[89],'C11':[58],'C12':[97],'C13':[79],'C14':[7],'C15':[72],'C16':[26],'C17':[7],'C18':[52],'C19':[0],'C20':[0],'C21':[47],'C22':[0],'C23':[7],'C24':[112],'C25':[0],'C26':[0]} + fea_dict3 = {'I1':[0.0],'I2':[0.000333],'I3':[0.00071],'I4':[0.137931],'I5':[0.003968],'I6':[0.077873],'I7':[0.019934],'I8':[0.714284],'I9':[0.505803],'I10':[0.0],'I11':[0.09375],'I12':[0.0],'I13':[0.17647],'C1':[0],'C2':[18],'C3':[39],'C4':[52],'C5':[3],'C6':[4],'C7':[140],'C8':[2],'C9':[1],'C10':[93],'C11':[31],'C12':[122],'C13':[16],'C14':[7],'C15':[129],'C16':[97],'C17':[8],'C18':[49],'C19':[0],'C20':[0],'C21':[25],'C22':[0],'C23':[6],'C24':[53],'C25':[0],'C26':[0]} + fea_dict4 = {'I1':[0.0],'I2':[0.004664],'I3':[0.000355],'I4':[0.045977],'I5':[0.033185],'I6':[0.094967],'I7':[0.016611],'I8':[0.081632],'I9':[0.028046],'I10':[0.0],'I11':[0.0625],'I12':[0.0],'I13':[0.039216],'C1':[0],'C2':[45],'C3':[7],'C4':[117],'C5':[1],'C6':[0],'C7':[164],'C8':[1],'C9':[0],'C10':[20],'C11':[61],'C12':[104],'C13':[36],'C14':[1],'C15':[43],'C16':[43],'C17':[8],'C18':[37],'C19':[0],'C20':[0],'C21':[156],'C22':[0],'C23':[0],'C24':[32],'C25':[0],'C26':[0]} + fea_dict5 = {'I1':[0.0],'I2':[0.000333],'I3':[0.036945],'I4':[0.310344],'I5':[0.003922],'I6':[0.067426],'I7':[0.013289],'I8':[0.65306],'I9':[0.035783],'I10':[0.0],'I11':[0.03125],'I12':[0.0],'I13':[0.264706],'C1':[0],'C2':[11],'C3':[59],'C4':[77],'C5':[1],'C6':[5],'C7':[18],'C8':[1],'C9':[1],'C10':[45],'C11':[171],'C12':[162],'C13':[96],'C14':[4],'C15':[36],'C16':[121],'C17':[8],'C18':[14],'C19':[5],'C20':[3],'C21':[9],'C22':[0],'C23':[0],'C24':[5],'C25':[1],'C26':[47]} + + # json str + data = json.dumps({"signature_name": "serving_default","instances": [fea_dict1,fea_dict2,fea_dict3,fea_dict4,fea_dict5] }) + # print(data) + + json_response = requests.post('http://localhost:8501/v1/models/raw_export_deepfm_model:predict', data=data) + predictions = json.loads(json_response.text) + print(predictions) + + +def test_RPC_serving(): + ''' + test RPC api + ''' + channel = grpc.insecure_channel(target='0.0.0.0:8500') + stub = prediction_service_pb2_grpc.PredictionServiceStub(channel) + + request = predict_pb2.PredictRequest() + request.model_spec.name = 'raw_export_deepfm_model' + request.model_spec.signature_name = 'serving_default' + + request.inputs['I1'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5])) + request.inputs['I2'].CopyFrom(tf.contrib.util.make_tensor_proto([0.001332,0.0,0.000333,0.004664,0.000333], shape=[5])) + request.inputs['I3'].CopyFrom(tf.contrib.util.make_tensor_proto([0.092362,0.00675,0.00071,0.000355,0.036945], shape=[5])) + request.inputs['I4'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.402298,0.137931,0.045977,0.310344], shape=[5])) + request.inputs['I5'].CopyFrom(tf.contrib.util.make_tensor_proto([0.034825,0.059628,0.003968,0.033185,0.003922], shape=[5])) + request.inputs['I6'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.117284,0.077873,0.094967,0.067426], shape=[5])) + request.inputs['I7'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.003322,0.019934,0.016611,0.013289], shape=[5])) + request.inputs['I8'].CopyFrom(tf.contrib.util.make_tensor_proto([0.673468,0.714284,0.714284,0.081632,0.65306], shape=[5])) + request.inputs['I9'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.154739,0.505803,0.028046,0.035783], shape=[5])) + request.inputs['I10'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5])) + request.inputs['I11'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.03125,0.09375,0.0625,0.03125], shape=[5])) + request.inputs['I12'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.0,0.0,0.0,0.0], shape=[5])) + request.inputs['I13'].CopyFrom(tf.contrib.util.make_tensor_proto([0.0,0.343137,0.17647,0.039216,0.264706], shape=[5])) + + request.inputs['C1'].CopyFrom(tf.contrib.util.make_tensor_proto([0,11,0,0,0], shape=[5])) + request.inputs['C2'].CopyFrom(tf.contrib.util.make_tensor_proto([4,1,18,45,11], shape=[5])) + request.inputs['C3'].CopyFrom(tf.contrib.util.make_tensor_proto([96,98,39,7,59], shape=[5])) + request.inputs['C4'].CopyFrom(tf.contrib.util.make_tensor_proto([146,98,52,117,77], shape=[5])) + request.inputs['C5'].CopyFrom(tf.contrib.util.make_tensor_proto([1,1,3,1,1], shape=[5])) + request.inputs['C6'].CopyFrom(tf.contrib.util.make_tensor_proto([4,6,4,0,5], shape=[5])) + request.inputs['C7'].CopyFrom(tf.contrib.util.make_tensor_proto([163,179,140,164,18], shape=[5])) + request.inputs['C8'].CopyFrom(tf.contrib.util.make_tensor_proto([1,0,2,1,1], shape=[5])) + request.inputs['C9'].CopyFrom(tf.contrib.util.make_tensor_proto([1,1,1,0,1], shape=[5])) + request.inputs['C10'].CopyFrom(tf.contrib.util.make_tensor_proto([72,89,93,20,45], shape=[5])) + request.inputs['C11'].CopyFrom(tf.contrib.util.make_tensor_proto([117,58,31,61,171], shape=[5])) + request.inputs['C12'].CopyFrom(tf.contrib.util.make_tensor_proto([127,97,122,104,162], shape=[5])) + request.inputs['C13'].CopyFrom(tf.contrib.util.make_tensor_proto([157,79,16,36,96], shape=[5])) + request.inputs['C14'].CopyFrom(tf.contrib.util.make_tensor_proto([7,7,7,1,4], shape=[5])) + request.inputs['C15'].CopyFrom(tf.contrib.util.make_tensor_proto([127,72,129,43,36], shape=[5])) + request.inputs['C16'].CopyFrom(tf.contrib.util.make_tensor_proto([126,26,97,43,121], shape=[5])) + request.inputs['C17'].CopyFrom(tf.contrib.util.make_tensor_proto([8,7,8,8,8], shape=[5])) + request.inputs['C18'].CopyFrom(tf.contrib.util.make_tensor_proto([66,52,49,37,14], shape=[5])) + request.inputs['C19'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,5], shape=[5])) + request.inputs['C20'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,3], shape=[5])) + request.inputs['C21'].CopyFrom(tf.contrib.util.make_tensor_proto([3,47,25,156,9], shape=[5])) + request.inputs['C22'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,0], shape=[5])) + request.inputs['C23'].CopyFrom(tf.contrib.util.make_tensor_proto([1,7,6,0,0], shape=[5])) + request.inputs['C24'].CopyFrom(tf.contrib.util.make_tensor_proto([96,112,53,32,5], shape=[5])) + request.inputs['C25'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,1], shape=[5])) + request.inputs['C26'].CopyFrom(tf.contrib.util.make_tensor_proto([0,0,0,0,47], shape=[5])) + + result = stub.Predict(request, 5.0) # 5 secs timeout + + outputs_tensor_proto = result.outputs["logits"] + shape = tf.TensorShape(outputs_tensor_proto.tensor_shape) + outputs = tf.constant(list(outputs_tensor_proto.float_val), shape=shape) + outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list()) + + print(f'logits:{outputs}') + outputs_tensor_proto = result.outputs["pred"] + shape = tf.TensorShape(outputs_tensor_proto.tensor_shape) + outputs = tf.constant(list(outputs_tensor_proto.float_val), shape=shape) + outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list()) + print(f'pred:{outputs}') + +if __name__ == "__main__": + data = pd.read_csv('../criteo_sample.txt') + df = data.head() ## for generate serving samples + + sparse_features = ['C' + str(i) for i in range(1, 27)] + dense_features = ['I' + str(i) for i in range(1, 14)] + + data[sparse_features] = data[sparse_features].fillna('-1', ) + data[dense_features] = data[dense_features].fillna(0, ) + target = ['label'] + + # 1.Label Encoding for sparse features,and do simple Transformation for dense features + feat_index_dict = {} + for feat in sparse_features: + lbe = LabelEncoder() + data[feat] = lbe.fit_transform(data[feat]) + feat_index_dict.update({feat:get_integer_mapping(lbe)}) + + # save min max value for each dense feature + s_max,s_min = data[dense_features].max(axis=0),data[dense_features].min(axis=0) + pd.concat([s_max, s_min],keys=['max','min'],axis=1).to_csv(f"max_min.txt",sep="\t") + + mms = MinMaxScaler(feature_range=(0, 1)) + data[dense_features] = mms.fit_transform(data[dense_features]) + + # save category features index for serving stage + import json + with open("feat_index_dict.json", 'w') as fo: + json.dump(feat_index_dict, fo) + + + # 2.count #unique features for each sparse field,and record dense feature field name + dnn_feature_columns = [] + linear_feature_columns = [] + for i, feat in enumerate(sparse_features): + dnn_feature_columns.append(tf.feature_column.embedding_column( + tf.feature_column.categorical_column_with_identity(feat, data[feat].nunique()), 4)) + linear_feature_columns.append(tf.feature_column.categorical_column_with_identity(feat, data[feat].nunique())) + for feat in dense_features: + dnn_feature_columns.append(tf.feature_column.numeric_column(feat)) + linear_feature_columns.append(tf.feature_column.numeric_column(feat)) + + # 3.generate input data for model + train, test = train_test_split(data, test_size=0.2) + # Not setting default value for continuous feature. filled with mean. + train_model_input = input_fn_pandas(train,sparse_features+dense_features,'label') + test_model_input = input_fn_pandas(test,sparse_features+dense_features,None) + + # 4.Define Model,train,predict and evaluate + model = DeepFMEstimator(linear_feature_columns, dnn_feature_columns) + model.train(train_model_input) + pred_ans_iter = model.predict(test_model_input) + pred_ans = list(map(lambda x:x['pred'],pred_ans_iter)) + # + print("test LogLoss", round(log_loss(test[target].values, pred_ans), 4)) + print("test AUC", round(roc_auc_score(test[target].values, pred_ans), 4)) + + # 5.saved Model by build_raw_serving_input ,generate model in export_path + def serving_input_receiver_fn(): + feature_map = {} + for i in range(len(sparse_features)): + feature_map[sparse_features[i]] = tf.placeholder(tf.int32,shape=(None, ),name='{}'.format(sparse_features[i])) + for i in range(len(dense_features)): + feature_map[dense_features[i]] = tf.placeholder(tf.float32,shape=(None, ),name='{}'.format(dense_features[i])) + return tf.estimator.export.build_raw_serving_input_receiver_fn(feature_map) + + model.export_savedmodel(export_dir_base='./serving_raw/', + serving_input_receiver_fn=serving_input_receiver_fn()) + + + # 6. run bash test serving service in local PC + # export_path = './serving_raw/1593253204' (generated above) + # run bash + # !saved_model_cli show --dir {export_path} --all + # !saved_model_cli run --dir {export_path} --tag_set serve --signature_def "serving_default" --input_expr 'I1=[0.0,0.0,0.0,0.0,0.0];I2=[0.001332,0.0,0.000333,0.004664,0.000333];I3=[0.092362,0.00675,0.00071,0.000355,0.036945];I4=[0.0,0.402298,0.137931,0.045977,0.310344];I5=[0.034825,0.059628,0.003968,0.033185,0.003922];I6=[0.0,0.117284,0.077873,0.094967,0.067426];I7=[0.0,0.003322,0.019934,0.016611,0.013289];I8=[0.673468,0.714284,0.714284,0.081632,0.65306];I9=[0.0,0.154739,0.505803,0.028046,0.035783];I10=[0.0,0.0,0.0,0.0,0.0];I11=[0.0,0.03125,0.09375,0.0625,0.03125];I12=[0.0,0.0,0.0,0.0,0.0];I13=[0.0,0.343137,0.17647,0.039216,0.264706];C1=[0,11,0,0,0];C2=[4,1,18,45,11];C3=[96,98,39,7,59];C4=[146,98,52,117,77];C5=[1,1,3,1,1];C6=[4,6,4,0,5];C7=[163,179,140,164,18];C8=[1,0,2,1,1];C9=[1,1,1,0,1];C10=[72,89,93,20,45];C11=[117,58,31,61,171];C12=[127,97,122,104,162];C13=[157,79,16,36,96];C14=[7,7,7,1,4];C15=[127,72,129,43,36];C16=[126,26,97,43,121];C17=[8,7,8,8,8];C18=[66,52,49,37,14];C19=[0,0,0,0,5];C20=[0,0,0,0,3];C21=[3,47,25,156,9];C22=[0,0,0,0,0];C23=[1,7,6,0,0];C24=[96,112,53,32,5];C25=[0,0,0,0,1];C26=[0,0,0,0,47]' + # # local pc import os + # os.environ["MODEL_DIR"] = '/home/mi/openwork/sub/DeepCTR/examples/estimator_serving/serving_raw' + # + # bash + # nohup tensorflow_model_server --port=8500 --rest_api_port=8501 --model_name=raw_export_deepfm_model --model_base_path=${MODEL_DIR} >server.log 2>&1 + + # test_REST_serving() + # test_RPC_serving() \ No newline at end of file