我有一个用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)
看起来你的Tensorflow模型在这台机器上的速度太慢了。您在没有Django的情况下测试了它,它还需要30秒,因此我们可以跳过Django部分
提高速度的最佳选择是使用
tensorflow-gpu
和带有Nvidia图形卡的服务器(例如AWS GPU实例)。这通常会将所需时间减少至少10倍,因此您将获得一个应用程序可能可以接受的等待时间此外,您应该尝试解耦Django和Tensorflow脚本,以避免为每个请求加载和初始化模型。创建某种队列系统。然后,Django应用程序将输入值写入队列并等待结果,然后Tensorflow程序在后台运行,从队列读取值,计算模型并将结果发送回Django
相关问题 更多 >
编程相关推荐