Ошибка компиляции XLA: операция не имеет атрибута с именем _XlaCompile - PullRequest
0 голосов
/ 08 июня 2018

Я использую приведенный ниже код.Я получаю сообщение об ошибке компилятора XLA, как указано ниже.У меня версия Tensorflow GPU 1.8, но я попробовал с версией процессора, и я получил ошибку.Но когда я понизил Tensorflow (CPU) до 1,3, я не получил никакой ошибки.Tensorflow был установлен с использованием виртуальной среды с Pip.

Пожалуйста, кто-нибудь может мне помочь в этом.

Код:

import tensorflow as tf
input_tensor = tf.placeholder(dtype=tf.float32, shape=[None, 16, 16, 3])
print(input_tensor.shape)

conv_filter = tf.get_variable('conv_filter', shape=[2, 2, 3, 6], dtype=tf.float32)
conv1 = tf.nn.conv2d(input_tensor, conv_filter, strides=[1, 2, 2, 1], padding='SAME')
print(conv1.shape)

deconv_filter = tf.get_variable('deconv_filter', shape=[2, 2, 6, 3], dtype=tf.float32)

deconv = tf.nn.conv2d_transpose(input_tensor, filter=deconv_filter,
    output_shape=tf.shape(input_tensor),
    strides=[1, 2, 2, 1],
    padding='SAME')
print(deconv.shape)

t = tf.reduce_mean(deconv)
g = tf.train.AdamOptimizer(0.01).minimize(t)

Журнал ошибок:

(?, 16, 16, 3)
(?, 8, 8, 6)
(?, 16, 16, 3)     # <<<<< This should have printed (?, ?, ?, ?)

Traceback (most recent call last):
  File "/my/path/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2327, in get_attr
    c_api.TF_OperationGetAttrValueProto(self._c_op, name, buf)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Operation 'conv2d_transpose' has no attr named '_XlaCompile'.

Traceback (most recent call last):
  File "/my/path/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 380, in _MaybeCompile
    xla_compile = op.get_attr("_XlaCompile")
  File "/my/path/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2331, in get_attr
    raise ValueError(str(e))
ValueError: Operation 'conv2d_transpose' has no attr named '_XlaCompile'.

Ошибка в строке g = tf.train.AdamOptimizer(0.01).minimize(t)

1 Ответ

0 голосов
/ 14 июня 2018

Проблема возникает из-за несоответствия в форме фильтра и связанных с ним шагов для получения требуемой выходной формы с заполнением VALID.Я должен был установить форму фильтра деконволюции [1, 1, 3, 3] и шаг в [1, 1, 1, 1].

Требуемый код:

deconv_filter = tf.get_variable('deconv_filter', shape=[1, 1, 6, 3], dtype=tf.float32)

deconv = tf.nn.conv2d_transpose(input_tensor, filter=deconv_filter,
    output_shape=tf.shape(input_tensor),
    strides=[1, 1, 1, 1],
    padding='VALID')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...