[英]Is there a difference in speed between tf.keras.Model subclass implementation and equivalent tf functional API implementation?
[英]Monte Carlo Dropout implemented as subclass of tf.keras.Model
我知道可以通過多次調用model.predict()
並測量返回值的平均值來實現蒙特卡洛丟失。 但是,我想知道是否可以通過子類化 tensorflow.keras 的Model
s tensorflow.keras
來實現它?
通過子類化Model
和 class 使用更典型的模型實現方式,支持輕松加載和保存 Keras 模型,無需任何其他代碼,然后在運行時調用predict
(一次)。 這在使用 Tensorflow 服務時可能特別有用,但在通過其他一些 Python 腳本加載它時也已經增加了一些舒適度。 (例如,比較多個不同的模型時。)
我相信這個示例代碼應該有效:
class MonteCarloDropout(tf.keras.layers.Dropout):
def __init__(self, rate):
super(MonteCarloDropout, self).__init__()
self.rate = rate
def call(self, inputs):
return super().call(inputs, training=True)
然后你可以使用這個層作為你的 model 中的任何層..
...
model.add(MonteCarloDropout(rate=0.2)) # just example... model is some Sequential model... could be anything...
...
我希望這有幫助!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.