簡體   English   中英

TensorFlow:在訓練新模型時,將來自一個模型的預測合並的最簡單方法是什么?

[英]TensorFlow: What is the easiest way to incorporate predictions from one model in the training of a new model?

在訓練另一個模型B時,使用tf.estimator訓練的模型A的最簡單方法是什么?

模型A中的權重是固定的。 在模型B中,我想接受一些輸入,進行計算,然后將這些結果輸入模型A,然后對輸出進行更多計算。

一個簡單的例子:

ModelA返回tf.matmul(input,weights)

在ModelB中,我想執行以下操作:

  x1 = tf.matmul(new_inputs,new_weights1)
  x2 = modelA(x1) # with fixed weights
  return tf.matmul(x2,new_weights2)

但是,對於更復雜的模型A和B,每個模型都經過tf.estimator訓練(盡管如果有其他簡單的解決方案,我很樂意不使用估計器-我之所以使用它們是因為我想使用ML Engine) 。

這個問題是相關的,但是建議的解決方案不適用於訓練模型B,因為tf.py_func的梯度為[None]。 我已經嘗試為tf.py_func注冊一個漸變,但是這樣失敗了

不支持的對象類型張量

tf.import_graph_def為模型A嘗試過tf.import_graph_def ,但這似乎加載了預訓練圖,但未加載實際權重。

對於模型可組合性,Keras的性能要好得多。 您可以將Keras模型轉換為估算器:

https://cloud.google.com/blog/products/gcp/new-in-tensorflow-14-converting-a-keras-model-to-a-tensorflow-estimator

因此,您仍然可以在ML Engine上進行訓練。

對於Keras,這只是加載中間層的權重和來自檢查點的偏差並使該層不可訓練的問題。 看到:

是否可以保存受過訓練的圖層以在Keras上使用圖層?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM