Я подготовил модель DCGAN и теперь хотел бы загрузить ее в библиотеку, которая визуализирует драйверы активации нейронов с помощью оптимизации пространства изображений.
Следующий код работает, но заставляет меня работать с изображениями (1, ширина, высота, каналы) при последующем анализе изображений, что является болью (предположения библиотеки о форме ввода в сеть).
# creating TensorFlow session and loading the model
graph = tf.Graph()
sess = tf.InteractiveSession(graph=graph)
new_saver = tf.train.import_meta_graph(model_fn)
new_saver.restore(sess, './')
Я хотел бы изменить input_map. После чтения источника я ожидал, что этот код будет работать:
graph = tf.Graph()
sess = tf.InteractiveSession(graph=graph)
t_input = tf.placeholder(np.float32, name='images') # define the input tensor
t_preprocessed = tf.expand_dims(t_input, 0)
new_saver = tf.train.import_meta_graph(model_fn, input_map={'images': t_input})
new_saver.restore(sess, './')
Но получилась ошибка:
ЗначениеError: tf.import_graph_def() требует непустого
name
, если используетсяinput_map
.
Когда стек сбрасывается до tf.import_graph_def()
, в поле имени устанавливается значение import_scope, поэтому я попробовал следующее:
graph = tf.Graph()
sess = tf.InteractiveSession(graph=graph)
t_input = tf.placeholder(np.float32, name='images') # define the input tensor
t_preprocessed = tf.expand_dims(t_input, 0)
new_saver = tf.train.import_meta_graph(model_fn, input_map={'images': t_input}, import_scope='import')
new_saver.restore(sess, './')
Что заставило меня следующее KeyError
:
KeyError: "Имя" градиенты/дискриминатор/минибаза/карта/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayReadV3/RefEnter: 0 'относится к тензору, которого не существует. Операция "градиенты/дискриминатор/минибарабан/карта/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayReadV3/RefEnter ', не существует на графике."
Если я устанавливаю 'import_scope', я получаю ту же ошибку, установлен ли "input_map" или нет.
Я не уверен, куда идти отсюда.