簡體   English   中英

TensorFlow到Keras Tensor

[英]TensorFlow to Keras Tensor

我正在使用這個博客的信息混合使用TensorFlow張量和Keras張量:

但是當輸出需要是Keras張量而不是TensorFlow張量時,問題出現在最后一層。 有一種簡單的方法可以轉換嗎? 或者是否有一個Keras函數可以進行雙線性調整大小?

finalOut = predict_flow2
finalOut = tf.image.resize_bilinear(finalOut, tf.stack([h, w]), align_corners=True)
model = Model(input=input, output=finalOut)
model.summary()

錯誤消息:

TypeError:模型的輸出張量必須是Keras張量。 發現:Tensor(“ResizeBilinear:0”,shape =(?,320,1152,2),dtype = float32)

我的意思是,我無法知道什么是predict_flow2 我打算假設這是一個Keras tensor ,但如果不是,你可以概括我的答案。

模型由層組成,這些層不完全是函數。 要使用這樣的TF函數(或任何函數),需要將它們包裝在Lambda層周圍:

import numpy as np
import tensorflow as tf
from keras import Input, Model
from keras.layers import Lambda


x = Input((224, 224, 3))
h, w = 299, 299

y = Lambda(lambda inputs: tf.image.resize_bilinear(inputs,
                                                   tf.stack([h, w]),
                                                   align_corners=True))(x)
model = Model(inputs=x, output=y)
model.summary()

p = model.predict(np.random.randn(1, 224, 224, 3))
print('shape:', p.shape)

哪個會輸出:

Using TensorFlow backend.
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 224, 224, 3)       0         
_________________________________________________________________
lambda_1 (Lambda)            (None, 299, 299, 3)       0         
=================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0
_________________________________________________________________

shape: (1, 299, 299, 3)

暫無
暫無

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

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