2015-12-18 35 views
2

我想用tf.image.extract_glimpse來構建張量流圖。Tensorflow:沒有爲標準操作註冊形狀功能:ExtractGlimpse。我在哪裏添加我的形狀函數的代碼?

不幸的是我認爲API本身存在一個錯誤。我收到錯誤No shape function registered for standard op: ExtractGlimpse

其實是有下面的代碼在/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/attentions_ops.py

@ops.RegisterShape("ExtractGlimpse") 
def _ExtractGlimpseShape(op): 
    """Shape function for ExtractGlimpse op.""" 
    input_shape = op.inputs[0].get_shape().with_rank(4) 
    unused_size_shape = op.inputs[1].get_shape().merge_with(
     tensor_shape.vector(2)) 
    offsets_shape = op.inputs[2].get_shape().merge_with(
     input_shape[:1].concatenate([2])) 
    offsets_shape = offsets_shape 
    size_value = tensor_util.ConstantValue(op.inputs[1]) 
    if size_value is not None: 
    height = size_value[0] 
    width = size_value[1] 
    else: 
    height = None 
    width = None 
    return [tensor_shape.TensorShape(
     [input_shape[0], height, width, input_shape[3]])] 

出於某種原因沒有被正確使用此功能,但它不是從documentation到底在哪這個功能完全清楚叫做。

在哪個python文件是應該調用這個函數,以及如何使用該調用?

在此先感謝

回答

4

這看起來像在TensorFlow了一個錯誤:形狀函數在正確的位置定義,但絕不會在執行中attention_ops.py的代碼,所以形狀函數永遠不會註冊。

我會解決它的上游,但在此期間,你可以通過添加以下行程序修復:

from tensorflow.python.ops import attention_ops 
+0

乾杯,導入文件進行排序它暫時 – Boyentenbi