具有tensorflow的Django应用运行非常缓慢

问题描述 投票:0回答:1

我有一个使用django创建的Web应用程序,该应用程序正在使用tensorflow生成称赞并将其通过短信发送给注册该服务的人员。每次用户提交数字时,我都会使用subprocess.call()运行一个单独的脚本来创建我的模型并将AI生成的赞美词写入文本文件,然后SMS网关(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)
python django tensorflow subprocess twilio
1个回答
0
投票

看来您的Tensorflow模型在这台机器上就这么慢。您在没有Django的情况下对其进行了测试,它也需要30秒,因此我们可以在此处跳过Django部分。

加快速度的最佳选择是使用tensorflow-gpu和带有Nvidia图形卡的服务器(例如AWS GPU实例)。通常这将所需的时间减少了至少10倍,因此您将获得等待时间,该等待时间可能对于您的应用程序是可接受的。

此外,您应尝试将Django和Tensorflow-Script分离,以避免为每个请求加载和初始化模型。创建某种队列系统。然后,您的Django应用将输入值写入队列并等待结果,您的Tensorflow程序在后台运行并从队列中读取值,评估模型并将结果发送回Django。

© www.soinside.com 2019 - 2024. All rights reserved.