In [0]:
"""
We use following lines because we are running on Google Colab
If you are running notebook on a local computer, you don't need this cell
"""
from google.colab import drive
drive.mount('/content/gdrive')
import os
os.chdir('/content/gdrive/My Drive/finch/tensorflow1/free_chat/chinese_gaoq1/main')
In [0]:
%tensorflow_version 1.x
In [3]:
import tensorflow as tf
import time

from pathlib import Path

print("TensorFlow Version", tf.__version__)
print('GPU Enabled:', tf.test.is_gpu_available())
TensorFlow Version 1.15.0
GPU Enabled: False
In [0]:
def get_vocab(f_path):
  word2idx = {}
  with open(f_path) as f:
    for i, line in enumerate(f):
      line = line.rstrip('\n')
      word2idx[line] = i
  return word2idx

def parse_fn(text):
  parse = lambda text: [[params['char2idx'].get(c, len(params['char2idx'])) for c in list(text)]]
  return {'words': parse(text)}
In [5]:
params = {'export_dir': '../model/transformer_export'}

params['char2idx'] = get_vocab('../vocab/char.txt')

params['idx2char'] = {idx: char for char, idx in params['char2idx'].items()}

subdirs = [x for x in Path(params['export_dir']).iterdir()
           if x.is_dir() and 'temp' not in str(x)]
latest = str(sorted(subdirs)[-1])
print(latest)

predict_fn = tf.contrib.predictor.from_saved_model(latest)
../model/transformer_export/1578548544
WARNING:tensorflow:
The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
  * https://github.com/tensorflow/addons
  * https://github.com/tensorflow/io (for I/O related ops)
If you depend on functionality not listed there, please file an issue.

WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow_core/contrib/predictor/saved_model_predictor.py:153: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.
Instructions for updating:
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.
INFO:tensorflow:Restoring parameters from ../model/transformer_export/1578548544/variables/variables
In [0]:
while True:
  text_inp = input('Input:')
  t0 = time.time()
  predictions = predict_fn(parse_fn(text_inp))
  #print('Shape:', predictions['output'].shape)
  for j in range(3):
    indices = [params['idx2char'].get(idx, len(params['idx2char'])) for idx in predictions['output'][0, :, j] if (idx != 0 and idx != 2)]
    sent = ' '.join(indices)
    print('Rank_{}:'.format(j+1), sent)
  print('Cost %.2f sec' % (time.time() - t0))
  print()
Input:你好
Rank_1: 你 好
Rank_2: 你 好 你 好
Rank_3: 你 好 呀
Cost 2.83 sec

Input:早上好
Rank_1: 早 上 好
Rank_2: 早 安
Rank_3: 晚 安
Cost 0.15 sec

Input:晚上好
Rank_1: 晚 上 好
Rank_2: 晚 上 好 !
Rank_3: 早 上 好
Cost 0.21 sec

Input:再见
Rank_1: 哈 哈 哈
Rank_2: 不 见
Rank_3: 哈 哈
Cost 0.27 sec

Input:好久不见
Rank_1: 好 久 不 见
Rank_2: 是 啊
Rank_3: 好 久 不 见 了
Cost 0.19 sec

Input:想死你了
Rank_1: 我 也 想 你
Rank_2: 我 也 是
Rank_3: 来 啊
Cost 0.28 sec

Input:谢谢你
Rank_1: 不 客 气
Rank_2: 不 用 谢
Rank_3: 客 气
Cost 0.17 sec

Input:爱你
Rank_1: 我 也 爱 你
Rank_2: 么 么 哒
Rank_3: 爱 你
Cost 0.24 sec

Input:你叫什么名字
Rank_1: 你 猜
Rank_2: 不 知 道
Rank_3: 不 知 道 叫 啥
Cost 0.23 sec

Input:你几岁了
Rank_1: 三 岁
Rank_2: 岁
Rank_3: 你 猜
Cost 0.16 sec

Input:现在几点了
Rank_1: 点 多
Rank_2: 十 一 点
Rank_3: 四 点
Cost 0.15 sec

Input:今天天气怎么样
Rank_1: 下 雨 了
Rank_2: 还 行
Rank_3: 下 雨
Cost 0.24 sec

Input:我们现在在哪里
Rank_1: 你 们 在 哪
Rank_2: 你 在 哪
Rank_3: 你 在 哪 里
Cost 0.30 sec

Input:你能给我讲个笑话吗
Rank_1: 可 以
Rank_2: 不 能
Rank_3: 可 以 啊
Cost 0.32 sec

Input:你是男孩还是女孩呀
Rank_1: 男 孩
Rank_2: 女 孩
Rank_3: 女 孩 子
Cost 0.20 sec

Input:你会几种语言呀
Rank_1: 哈 哈 哈
Rank_2: 你 猜
Rank_3: 哈 哈
Cost 0.29 sec

Input:你能陪我玩吗
Rank_1: 不 能
Rank_2: 可 以
Rank_3: 可 以 啊
Cost 0.29 sec

Input:说话可以大声一点吗
Rank_1: 可 以
Rank_2: 可 以 的
Rank_3: 不 可 以
Cost 0.33 sec

Input:天气真好
Rank_1: 是 的
Rank_2: 是 啊
Rank_3: 对 啊
Cost 0.28 sec

Input:天气太糟糕了
Rank_1: 哈 哈 哈
Rank_2: 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.31 sec

Input:下雨了
Rank_1: 哈 哈
Rank_2: 下 了
Rank_3: 哈 哈 哈
Cost 0.29 sec

Input:雨好大
Rank_1: 哈 哈
Rank_2: 哈 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.28 sec

Input:我讨厌艳阳天
Rank_1: 哈 哈 哈
Rank_2: 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.29 sec

Input:好晒啊
Rank_1: 不 晒
Rank_2: 晒 了
Rank_3: 没 有
Cost 0.20 sec

Input:今天好冷
Rank_1: 是 啊
Rank_2: 不 冷
Rank_3: 今 天 下 雨
Cost 0.25 sec

Input:今天好热
Rank_1: 哈 哈 哈
Rank_2: 哈 哈 哈 哈
Rank_3: 我 也 是
Cost 0.29 sec

Input:风好大
Rank_1: 哈 哈
Rank_2: 是 啊
Rank_3: 是 的
Cost 0.28 sec

Input:雾太大了看不清路
Rank_1: 哈 哈 哈
Rank_2: 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.31 sec

Input:打雷了好可怕
Rank_1: 哈 哈 哈
Rank_2: 哈 哈 哈 哈
Rank_3: 哈 哈
Cost 0.30 sec

Input:下雪了诶
Rank_1: 是 的
Rank_2: 是 啊
Rank_3: 哈 哈
Cost 0.30 sec

Input:好烦啊
Rank_1: 我 也 是
Rank_2: 咋 了
Rank_3: 咋 啦
Cost 0.28 sec

Input:好开心
Rank_1: 你 也 是
Rank_2: 开 心 就 好
Rank_3: 开 心
Cost 0.26 sec

Input:太激动了
Rank_1: 哈 哈
Rank_2: 哈 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.29 sec

Input:我好难过
Rank_1: 怎 么 了
Rank_2: 不 难 过
Rank_3: 我 也 是
Cost 0.23 sec

Input:我想哭
Rank_1: 抱 抱
Rank_2: 哭 啥
Rank_3: 不 哭
Cost 0.20 sec

Input:太好笑了
Rank_1: 哈 哈
Rank_2: 哈 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.29 sec

Input:我好伤心
Rank_1: 哈 哈
Rank_2: 哈 哈 哈
Rank_3: 哈 哈 哈 哈
Cost 0.30 sec

Input:心好痛
Rank_1: 哈 哈 哈
Rank_2: 哈 哈 哈 哈
Rank_3: 哈 哈
Cost 0.32 sec

Input:好累啊
Rank_1: 我 也 是
Rank_2: 是 的
Rank_3: 是 啊
Cost 0.21 sec

Input:我好疲惫
Rank_1: 我 也 是
Rank_2: 哈 哈 哈
Rank_3: 哈 哈
Cost 0.28 sec

Input:我爱你
Rank_1: 我 也 爱 你
Rank_2: 爱 你
Rank_3: 哈 哈 哈
Cost 0.27 sec

Input:我讨厌你
Rank_1: 图 片 评 论
Rank_2: 哈 哈 哈
Rank_3: 你 不 爱 我 了
Cost 0.27 sec

Input:你真是太棒啦
Rank_1: 谢 谢
Rank_2: 哈 哈 哈
Rank_3: 哈 哈
Cost 0.30 sec

Input:你好厉害啊
Rank_1: 哈 哈 哈
Rank_2: 哈 哈
Rank_3: 那 是
Cost 0.28 sec

Input:吓死我了
Rank_1: 哈 哈 哈 哈
Rank_2: 哈 哈
Rank_3: 哈 哈 哈
Cost 0.30 sec

Input:我想回家
Rank_1: 回 家
Rank_2: 想 回 家
Rank_3: 我 也 想 回 家
Cost 0.21 sec

Input:我想爸妈了
Rank_1: 我 也 是
Rank_2: 哈 哈 哈
Rank_3: 哈 哈 哈 哈 哈
Cost 0.30 sec

Input:不知道小孩在家有没有听话
Rank_1: 好 吧
Rank_2: 没 有
Rank_3: 那 就 好
Cost 0.27 sec

Input:想回家撸猫
Rank_1: 回 来
Rank_2: 哈 哈 哈 哈
Rank_3: 我 也 想
Cost 0.30 sec