Просто создайте крючок перед циклом тренировки:
class GlobalStepHook(tf.train.SessionRunHook):
def __init__(self):
self._global_step_tensor = None
self.value = None
def begin(self):
self._global_step_tensor = tf.train.get_global_step()
def after_run(self, run_context, run_values):
self.value = run_context.session.run(self._global_step_tensor)
def __str__(self):
return str(self.value)
global_step = GlobalStepHook()
for epoch in range(n_epochs):
estimator.train(input_fn=input_fn, hooks=[global_step])
# Now the global_step hook contains the latest value of global_step
my_custom_eval_method(global_step.value)
Найти все элементы с атрибутом class как examplenameA
, исключая элементы с атрибутом class [ 117] как examplenameB
вы можете использовать следующее решение:
css_selector
:
items = driver.find_elements_by_css_selector("div.examplenameA:not(.examplenameB)")
xpath
:
items = driver.find_element_by_xpath("//div[contains(@class, 'examplenameA') and not(@class='examplenameB')]")
В этом случае вы можете использовать xpath. Итак, согласно вашему примеру, вам нужно использовать что-то вроде driver.find_elements_by_xpath('//div[@class='examplenameA')
. Это даст вам только элементы, чей класс examplenameA
Итак, как работает xpath: Xpath=//tagname[@attribute='value']
Следовательно, класс рассматривается как атрибут & amp; xpath будет пытаться сопоставить точное заданное значение, в этом случае examplenameA
, поэтому <div class="examplenameA examplenameB">
будет игнорироваться
В случае find_elements_by_class_name method
он будет пытаться сопоставить элемент, который имеет класс как [ 116], поэтому <div class="examplenameA examplenameB">
также будет соответствовать
Надеюсь, это поможет