2017-09-26 4 views
1

이 함수와 비슷하게 (가장 가까운 이웃을 사용하여) 내삽하여 (없음, 2, 7, 512) ((없음, 2, 7, 512)) 크기의 텐서 (레이어 간) 크기를 조정하려면 tf.image.resize_nearest_neighbor Tensorflow에서 사용 가능합니다.Keras에서 텐서의 크기를 조정 (보간)하는 방법은 무엇입니까?

그렇게 할 방법이 있습니까?

내가 직접 Tensorflow 기능 tf.image.resize_nearest_neighbor를 사용하고 다음 Keras 층에 텐서를 통과했지만, 다음 층이 오류가 발생했습니다 :이 몇 가지 속성에 기인 생각

AttributeError: 'Tensor' object has no attribute '_keras_history'

을 Tensorflow 텐서에서는 빠져 있는데, 이것은 레이어가 Keras 텐서를 통과 할 것으로 예상 할 때 의미가 있습니다.

+0

'* (p-1) + * (p + 1)' – ikegami

답변

2

하나의 요소를 추가하고 새로운 람다 레이어로 보간을 구현하려면 반복을 사용합니다. 케라에는 기존 레이어가 없다고 생각합니다.

2

놀랍게도 (xtof54에서 지적한 바와 같이) 놀랍게도 텐서의 보간을 수행하는 케라에는 기존의 레이어/기능이 없습니다. 그래서, 람다 레이어를 사용하여 그것을 구현하고, 그것은 잘 작동했습니다.

def resize_like(input_tensor, ref_tensor): # resizes input tensor wrt. ref_tensor 
    H, W = ref_tensor.get_shape()[1], ref.get_shape()[2] 
    return tf.image.resize_nearest_neighbor(inputs, [H.value, W.value]) 

resized_tensor = Lambda(resize_like, arguments={'ref_tensor':ref_tensor})(input_tensor) 

문제

는, 처음에, 누락 (A keras 텐서에 필요) 몇 가지 추가 속성 등의 Keras 층에서 tensorflow에서 직접 텐서의 사용 때문. 또한 Lambda 레이어는 사용하기가 쉽지만 keras가 장래에 keras 레이어에서 직접 tensorflow (가능하면)를 사용할 수 있다면 매우 편리합니다.

+0

맞아요, 우리는 반복 레이어가 필요없고 람다 안에서도 할 수 있습니다. – xtof54