Tensorflow

Tensorflow: input_tensor와 input_shape의 차이

카카오그래놀라 2020. 10. 28. 01:25

tf.keras.applications.InceptionV3(
    include_top=True,
    weights="imagenet",
    
    input_tensor=None,
    input_shape=None,
    
    pooling=None,
    classes=1000,
    classifier_activation="softmax",
)

 

input_shape: 입력받는 이미지의 shape

input_tensor: 입력층의 tensor 지정. 입력받는 이미지의 shape에 관계없이 특정 tensor로 지정할수 있음.

 

공식문서: input_shape will be ignored if the input_tensor is provided

 

 

예를 들어,

  • input_shape를 (224, 224, 3)으로 하고 input_tensor을 지정하지 않았다면, Input은 (224, 224, 3)이 됨.
  • 하지만, input_shape를 (224, 224, 3)으로 지정하고, input_tensor를 (150, 150, 3)으로 지정했다면,
    Input은 해당 input_tensor(150,150,3)에 맞춰 들어가게 됨.
# Keras Source code

if input_tensor is None:
    img_input = layers.Input(shape=input_shape)
else:
    if not backend.is_keras_tensor(input_tensor):
        img_input = layers.Input(tensor=input_tensor, shape=input_shape)
    else:
        img_input = input_tensor