Można to zrobić na różne sposoby. Czysto, użycie tensorflow nie jest zbyt elastyczne, jednak stosunkowo proste. Wadą tego podejścia jest to, że musisz odbudować wykres i zainicjować zmienne w kodzie, w którym przywracasz model. Jest sposób pokazany w tensorflow skflow/contrib learn, który jest bardziej elegancki, jednak obecnie nie wydaje się być funkcjonalny, a dokumentacja jest nieaktualna.
Połączyłem krótki przykład na github here, który pokazuje, jak nazwałbyś parametry GET lub POST do modelu tensorflow wdrożonego w REST.
Kod główny jest następnie w funkcji, która odbywa się w oparciu o słownik POST/GET dane:
@app.route('/model', methods=['GET', 'POST'])
@parse_postget
def apply_model(d):
tf.reset_default_graph()
with tf.Session() as session:
n = 1
x = tf.placeholder(tf.float32, [n], name='x')
y = tf.placeholder(tf.float32, [n], name='y')
m = tf.Variable([1.0], name='m')
b = tf.Variable([1.0], name='b')
y = tf.add(tf.mul(m, x), b) # fit y_i = m * x_i + b
y_act = tf.placeholder(tf.float32, [n], name='y_')
error = tf.sqrt((y - y_act) * (y - y_act))
train_step = tf.train.AdamOptimizer(0.05).minimize(error)
feed_dict = {x: np.array([float(d['x_in'])]), y_act: np.array([float(d['y_star'])])}
saver = tf.train.Saver()
saver.restore(session, 'linear.chk')
y_i, _, _ = session.run([y, m, b], feed_dict)
return jsonify(output=float(y_i))
, aby zawęzić pytanie, po prostu chcąc działającego przykładu zwracania wyników w kolbie po modelu ładowań – chro