保存keras模型以用于无Tensorflow的生产模式

hjzp0vay  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(210)

我想保存一个经过训练的keras模型,这样它就可以在一个应用程序的django rest后端使用了。我做了很多研究,但是似乎没有安装tensorflow就没有办法使用这些模型。
那么,这个存储器有什么用呢?我不想在服务器上安装像tensorflow这样的笨重的库。我用pickle和joblib以及keras自己的model.save()测试了保存。
有没有办法在不安装tensorflow而只使用keras本身的情况下加载这个模型?
这是我代码的一部分

from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout

xtrain, ytrain = np.array(xtrain), np.array(ytrain)
ytrain = np.reshape(ytrain, (ytrain.shape[0], 1, 1))
model = Sequential()
model.add(LSTM(150, return_sequences=True, input_shape=(xtrain.shape[1], 1)))
model.add(LSTM(150, return_sequences=False))
model.add(Dense(25))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(xtrain, ytrain, batch_size=1, epochs=7)
model.save('model.h5')

这通常可以完美地工作,但是如果我在其他地方使用这个模型,我会得到这个错误:
模块未找到错误:没有名为'tensorflow'的模块

bweufnob

bweufnob1#

你不需要在生产中使用Tensorflow,你可以通过替换你的编程语言中的随机函数来使用系数。
示例:输入数组时间系数矩阵,未装箱的系统输入到带有反馈的系统输出箱中。

temp = tf.random.normal([10], 1, 0.2, tf.float32)
temp = np.asarray(temp) * np.asarray([ coefficient_0, coefficient_1, coefficient_2, coefficient_3, coefficient_4, coefficient_5, coefficient_6, coefficient_7, coefficient_8, coefficient_9 ]) #action = actions['up']
temp = tf.nn.softmax(temp)

action = int(np.argmin(temp))

输出:从操作列表的大多数响应操作中选择的操作。

相关问题