#python #tensorflow #convolution
#python #тензорный поток #свертка
Вопрос:
Я пытаюсь запустить это репозиторий.
Я обнаружил эту проблему с github, которая еще не решена, а также указывает на мою проблему. Я использую Tensorflow 1.13.1 (также пробовал с 1.14) и python 3
Ошибка, которую я получаю, находится в depthwise_conv2d:
"input tensor must have rank %d at least" % (expected_input_rank))
ValueError: input tensor must have rank 5 at least
При проверке моих тензоров я получаю следующее:
input tensor: Tensor("network/concat:0", shape=(?, 180, 270, 304), dtype=float32)
filters: <tf.Variable 'network/slim_decoder/conv2d/weights:0' shape=(3, 3, 304, 1) dtype=float32_ref>
Вот определение функции:
@add_arg_scope
def depthwise_conv2d(
inputs, filters, bias=None,
strides=list([1, 1, 1, 1]), padding='SAME', dilations=list([1, 1, 1, 1]),
to_batch_norm=False, batch_norm_decay=0.997, is_training=True, activation_fn=None, name=None
):
if isinstance(strides, int):
strides = list([1, strides, strides, 1])
if isinstance(dilations, int):
dilations = list([1, dilations, dilations, 1])
print("input tensor: " inputs)
print("filters: " filters)
output = tf.nn.depthwise_conv2d(
input=inputs,
filter=filters,
strides=strides,
padding=padding,
rate=dilations,
name=name
)
if bias is not None:
output = tf.nn.bias_add(output, bias)
if to_batch_norm:
output = batch_norm(output, is_training, batch_norm_decay)
if activation_fn is not None:
output = activation_fn(output)
return output
Я потерян, любая помощь приветствуется, спасибо.
Ответ №1:
Попробуйте изменить свой аргумент расширения с [1,1,1,1] на [1,1] tensorflow, кроме списка 2.