带有tensorflow的Django应用程序运行非常缓慢



我有一个用django创建的网络应用程序,它使用tensorflow生成赞美并将其发送给注册该服务的人。每次用户提交号码时,我都会使用subprocess.call()运行一个单独的脚本,该脚本创建我的模型并将人工智能生成的称赞写入文本文件,然后SMS网关(twilio(将此.txt文件用作消息正文。

然而,在运行模型时提交有效数字后,应用程序会加载很长一段时间,比如有时需要30秒或更长时间才能停止加载页面,这并不理想。

为什么要花这么长时间?是因为在tensorflow中创建模型只是一个及时的过程吗?我能做点什么来加快速度吗?我应该让它在程序的早期运行代码来创建模型,还是应该提前生成一大堆赞美,让短信网关从中提取?

这是创建模型的脚本:

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)

在这台机器上,您的Tensorflow模型看起来就那么慢。你在没有Django的情况下测试了它,它也需要30秒,所以我们可以跳过这里的Django部分。

使其更快的最佳选择是使用tensorflow-gpu和带有Nvidia显卡的服务器(例如AWS GPU实例(。这通常会将所需时间减少至少10倍,因此您将获得一个可能适合您的应用程序的等待时间。

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

最新更新