我有一个用django
创建的web应用程序,它使用tensorflow
生成赞美,并将它们发送给注册了该服务的人。每次用户提交一个数字时,我都会使用subprocess.call()
运行一个单独的脚本,该脚本创建我的模型并将人工智能生成的问候语写入一个文本文件,然后短信网关(twilio
)使用这个.txt
文件作为消息的正文。
然而,在应用程序运行模型时提交有效的数字后,应用程序加载了很长一段时间,比如有时需要30秒或更长时间才能停止加载页面,这并不理想。
为什么花了这么长时间?这是因为在tensorflow
中创建模型只是一个及时的过程吗?我能做些什么来加快速度吗?我是应该让它在程序的早期运行代码来创建模型,还是应该提前生成一大堆恭维话,然后让SMS网关从中提取信息?
这是创建模型的脚本:
from textgenrnn import textgenrnn
textgen = textgenrnn(weights_path='compliments_weights.hdf5',
vocab_path='compliments_vocab.json',
config_path='compliments_config.json')
textgen.generate_samples(max_gen_length=1000)
textgen.generate_to_file('textgenrnn_texts.txt', max_gen_length=1000)
发布于 2020-05-11 17:14:07
看起来你的Tensorflow模型在这台机器上就是那么慢。您在没有使用Django的情况下对其进行了测试,它也需要30秒,因此我们可以跳过Django部分。
让它更快的最佳选择是使用tensorflow-gpu
和带有Nvidia显卡的服务器(例如AWS GPU实例)。这通常会将所需的时间减少至少10倍,因此您将获得的等待时间对于您的应用程序来说可能是可接受的。
此外,您应该尝试将Django和Tensorflow脚本解耦,以避免为每个请求加载和初始化模型。创建某种队列系统。然后,Django应用程序将输入值写入队列并等待结果,Tensorflow程序在后台运行,从队列中读取值,评估模型并将结果发送回Django。
https://stackoverflow.com/questions/61718079
复制相似问题