Я использую (очень старый) проводник процессов из SysInternals (procexp.exe). Это замена / добавление стандартного диспетчера задач, вы можете приостановить процесс оттуда.
Изменить: Microsoft купила через SysInternals, url: procExp.exe
Помимо этого вы можете установить приоритет процесса на низкий, чтобы он не мешал другим процессам, но это не приостанавливает процесс.
"_2"
в "BasicLSTMCell_2"
относится к области name , в которой был создан op outpts[2]
. Каждый раз, когда вы создаете новую область имен (с помощью tf.name_scope()
) или области видимости переменной (с tf.variable_scope()
), уникальный суффикс добавляется в текущую область имен, основанную на данная строка, возможно, с дополнительным суффиксом, чтобы сделать ее уникальной. Вызов rnn.rnn(...)
имеет следующий псевдокод (упрощенное и использующее общедоступные методы API для ясности):
outputs = []
with tf.variable_scope("RNN"):
for timestep, input_t in enumerate(inputs):
if timestep > 0:
tf.get_variable_scope().reuse_variables()
with tf.variable_scope("BasicLSTMCell"):
outputs.append(...)
return outputs
Если вы посмотрите на имена тензоров в outpts
, вы увидите, что они следующие:
>>> print [o.name for o in outpts]
[u'RNN/BasicLSTMCell/mul_2:0',
u'RNN/BasicLSTMCell_1/mul_2:0',
u'RNN/BasicLSTMCell_2/mul_2:0',
u'RNN/BasicLSTMCell_3/mul_2:0',
u'RNN/BasicLSTMCell_4/mul_2:0']
Когда вы вводите область нового имени (путем ввода блока with tf.name_scope("..."):
или with tf.variable_scope("..."):
), TensorFlow создает новое уникальное имя для области. При первом вводе области "BasicLSTMCell"
TensorFlow использует это имя дословно, потому что ранее оно не использовалось (в области "RNN/"
). В следующий раз TensorFlow добавит "_1"
к области, чтобы сделать ее уникальной, и так далее до "RNN/BasicLSTMCell_4"
.
Основное различие между областями переменных и областями имен заключается в том, что область переменной также имеет набор привязок name-to- tf.Variable
. Вызывая tf.get_variable_scope().reuse_variables()
, мы инструктируем TensorFlow использовать повторно , а не создавать переменные для области "RNN/"
(и его дочерних элементов) после timestep 0. Это гарантирует, что веса правильно распределены между несколькими RNN клетки.
Ответ выше как-то ошибочный.
Позвольте мне ответить, почему у вас есть два разных имени области, хотя похоже, что вы определили две идентичные функции: creating
и creating_mod
.
Это просто потому, что вы использовали tf.Variable(0.0, name=s)
для создания переменной в функции creating_mod
.
ALWAYS используют tf.get_variable
, если вы хотите, чтобы ваша переменная была распознана по области!
За дополнительной информацией обратитесь к этой проблеме .
Спасибо!
with tf.variable_scope(scope or type(self).__name__): # "BasicLSTMCell"
в rnn_cell.py – Xiaotong 5 January 2016 в 11:16"RNN"
) ( link ) и вложенная область ("BasicLSTMCell"
) ( ссылка ). Обратите внимание, что вызовvariable_scope()
подразумевает вызовname_scope()
(см. Реализацию здесь ). – mrry 5 January 2016 в 16:15variable_scope()
. – mrry 5 January 2016 в 16:15tf.get_variables
иtf.Variable
имеют разные способы генерации имен переменных. В то время какtf.get_variables
создает новый name_scope, он все еще называют переменную с именем переменной_scope, так или иначе ... – Xiaotong 5 January 2016 в 18:43tf.variable_scope("BasicLSTMCell", reuse=True)
бытьreuse=None
, чтобы он наследовал внешнее использование области и мог создавать переменные в своем первом запуске? – user728291 5 January 2016 в 23:35