本文整理匯總了Python中itertools.chain方法的典型用法代碼示例。如果您正苦於以下問題:Python itertools.chain方法的具體用法?Python itertools.chain怎麽用?Python itertools.chain使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類itertools
的用法示例。
在下文中一共展示了itertools.chain方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: setup_training
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def setup_training(self):
'''
Setup Pyro SVI, optimizers.
'''
if not self.is_train:
return
self.pyro_optimizer = optim.Adam({'lr': self.lr_init})
self.svis = {'elbo': SVI(self.model, self.guide, self.pyro_optimizer, loss=Trace_ELBO())}
# Separate pose_model parameters and other networks' parameters
params = []
for name, net in self.nets.items():
if name != 'pose_model':
params.append(net.parameters())
self.optimizer = torch.optim.Adam(\
[{'params': self.pose_model.parameters(), 'lr': self.lr_init},
{'params': itertools.chain(*params), 'lr': self.lr_init}
], betas=(0.5, 0.999))
示例2: CreateWeightLoss
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def CreateWeightLoss(self):
"""Returns L2 loss list of (almost) all variables used inside this block.
When this method needs to be overridden, there are two choices.
1. Override CreateWeightLoss() to change the weight loss of all variables
that belong to this block, both directly and indirectly.
2. Override _CreateWeightLoss() to change the weight loss of all
variables that directly belong to this block but not to the sub-blocks.
Returns:
A Tensor object or None.
"""
losses = list(itertools.chain(
itertools.chain.from_iterable(
t.CreateWeightLoss() for t in self._subblocks),
self._CreateWeightLoss()))
return losses
示例3: sub_spf1
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def sub_spf1(ni, subtree1, subtree2, op, calculate):
"""Implements spf1 single path function for the case when the
other subtree is a single node
Params:
ni -- node indexer for the subtree that has more than one element
subtree1 -- subtree that has a single element
subtree2 -- subtree that has more than one element
op -- cost of deleting/inserting node
calculate -- function(node, other) that returns the cost of
renaming nodes
"""
# pylint: disable=invalid-name
# pylint: disable=too-many-arguments
cost = subtree2.sum_cost
max_cost = cost + op
min_ren_minus_op = min(chain([cost], [
calculate(subtree1, info)
for _, info in ni.preorder_ltr(subtree2)
]))
return min(min_ren_minus_op + cost, max_cost)
示例4: forward
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def forward(self, *inputs, **kwargs):
if not self.device_ids:
return self.module(*inputs, **kwargs)
for t in chain(self.module.parameters(), self.module.buffers()):
if t.device != self.src_device_obj:
raise RuntimeError(
"module must have its parameters and buffers "
"on device {} (device_ids[0]) but found one of "
"them on device: {}".format(
self.src_device_obj, t.device))
inputs, kwargs = self.scatter(inputs, kwargs, self.device_ids)
if len(self.device_ids) == 1:
return self.module(*inputs, **kwargs)
replicas = self.replicate(self.module, self.device_ids[:len(inputs)])
outputs = self.parallel_apply(replicas, inputs, kwargs)
return outputs
示例5: update_template_context
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def update_template_context(self, context: dict) -> None:
"""Update the provided template context.
This adds additional context from the various template context
processors.
Arguments:
context: The context to update (mutate).
"""
processors = self.template_context_processors[None]
if has_request_context():
blueprint = _request_ctx_stack.top.request.blueprint
if blueprint is not None and blueprint in self.template_context_processors:
processors = chain( # type: ignore
processors, self.template_context_processors[blueprint]
)
extra_context: dict = {}
for processor in processors:
extra_context.update(await processor())
original = context.copy()
context.update(extra_context)
context.update(original)
示例6: do_teardown_request
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def do_teardown_request(
self, exc: Optional[BaseException], request_context: Optional[RequestContext] = None
) -> None:
"""Teardown the request, calling the teardown functions.
Arguments:
exc: Any exception not handled that has caused the request
to teardown.
request_context: The request context, optional as Flask
omits this argument.
"""
request_ = (request_context or _request_ctx_stack.top).request
functions = self.teardown_request_funcs[None]
blueprint = request_.blueprint
if blueprint is not None:
functions = chain(functions, self.teardown_request_funcs[blueprint]) # type: ignore
for function in functions:
await function(exc)
await request_tearing_down.send(self, exc=exc)
示例7: do_teardown_websocket
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def do_teardown_websocket(
self, exc: Optional[BaseException], websocket_context: Optional[WebsocketContext] = None
) -> None:
"""Teardown the websocket, calling the teardown functions.
Arguments:
exc: Any exception not handled that has caused the websocket
to teardown.
websocket_context: The websocket context, optional as Flask
omits this argument.
"""
websocket_ = (websocket_context or _websocket_ctx_stack.top).websocket
functions = self.teardown_websocket_funcs[None]
blueprint = websocket_.blueprint
if blueprint is not None:
functions = chain(functions, self.teardown_websocket_funcs[blueprint]) # type: ignore
for function in functions:
await function(exc)
await websocket_tearing_down.send(self, exc=exc)
示例8: preprocess_request
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def preprocess_request(
self, request_context: Optional[RequestContext] = None
) -> Optional[ResponseReturnValue]:
"""Preprocess the request i.e. call before_request functions.
Arguments:
request_context: The request context, optional as Flask
omits this argument.
"""
request_ = (request_context or _request_ctx_stack.top).request
blueprint = request_.blueprint
processors = self.url_value_preprocessors[None]
if blueprint is not None:
processors = chain(processors, self.url_value_preprocessors[blueprint]) # type: ignore
for processor in processors:
processor(request.endpoint, request.view_args)
functions = self.before_request_funcs[None]
if blueprint is not None:
functions = chain(functions, self.before_request_funcs[blueprint]) # type: ignore
for function in functions:
result = await function()
if result is not None:
return result
return None
示例9: preprocess_websocket
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def preprocess_websocket(
self, websocket_context: Optional[WebsocketContext] = None
) -> Optional[ResponseReturnValue]:
"""Preprocess the websocket i.e. call before_websocket functions.
Arguments:
websocket_context: The websocket context, optional as Flask
omits this argument.
"""
websocket_ = (websocket_context or _websocket_ctx_stack.top).websocket
blueprint = websocket_.blueprint
processors = self.url_value_preprocessors[None]
if blueprint is not None:
processors = chain(processors, self.url_value_preprocessors[blueprint]) # type: ignore
for processor in processors:
processor(websocket_.endpoint, websocket_.view_args)
functions = self.before_websocket_funcs[None]
if blueprint is not None:
functions = chain(functions, self.before_websocket_funcs[blueprint]) # type: ignore
for function in functions:
result = await function()
if result is not None:
return result
return None
示例10: point_entropy
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def point_entropy(self, unlabeled_sequence):
"""
Returns the pointwise entropy over the possible states at each
position in the chain, given the observation sequence.
"""
unlabeled_sequence = self._transform(unlabeled_sequence)
T = len(unlabeled_sequence)
N = len(self._states)
alpha = self._forward_probability(unlabeled_sequence)
beta = self._backward_probability(unlabeled_sequence)
normalisation = logsumexp2(alpha[T-1])
entropies = np.zeros(T, np.float64)
probs = np.zeros(N, np.float64)
for t in range(T):
for s in range(N):
probs[s] = alpha[t, s] + beta[t, s] - normalisation
for s in range(N):
entropies[t] -= 2**(probs[s]) * probs[s]
return entropies
示例11: __init__
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def __init__(
self, geom, debug=False, restart=None, maxsteps=100, logger=None, **params
):
self._debug = debug
self._maxsteps = maxsteps
self._converged = False
self._n = 0
self._log = BernyAdapter(logger or log, {'step': self._n})
s = self._state = Berny.State()
if restart:
vars(s).update(restart)
return
s.geom = geom
s.params = dict(chain(defaults.items(), params.items()))
s.trust = s.params['trust']
s.coords = InternalCoords(
s.geom, dihedral=s.params['dihedral'], superweakdih=s.params['superweakdih']
)
s.H = s.coords.hessian_guess(s.geom)
s.weights = s.coords.weights(s.geom)
s.future = Berny.Point(s.coords.eval_geom(s.geom), None, None)
s.first = True
for line in str(s.coords).split('\n'):
self._log.info(line)
示例12: get_attribute_suggestions
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def get_attribute_suggestions(type_str, attribute, frame):
"""Get the suggestions closest to the attribute name for a given type."""
types = get_types_for_str(type_str, frame)
attributes = set(a for t in types for a in dir(t))
if type_str == 'module':
# For module, we manage to get the corresponding 'module' type
# but the type doesn't bring much information about its content.
# A hacky way to do so is to assume that the exception was something
# like 'module_name.attribute' so that we can actually find the module
# based on the name. Eventually, we check that the found object is a
# module indeed. This is not failproof but it brings a whole lot of
# interesting suggestions and the (minimal) risk is to have invalid
# suggestions.
module_name = frame.f_code.co_names[0]
objs = get_objects_in_frame(frame)
mod = objs[module_name][0].obj
if inspect.ismodule(mod):
attributes = set(dir(mod))
return itertools.chain(
suggest_attribute_as_builtin(attribute, type_str, frame),
suggest_attribute_alternative(attribute, type_str, attributes),
suggest_attribute_as_typo(attribute, attributes),
suggest_attribute_as_special_case(attribute))
示例13: process
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def process(parser, widget_dict):
mutually_exclusive_groups = [
[mutex_action for mutex_action in group_actions._group_actions]
for group_actions in parser._mutually_exclusive_groups]
group_options = list(chain(*mutually_exclusive_groups))
base_actions = [action for action in parser._actions
if action not in group_options
and action.dest != 'help']
required_actions = filter(is_required, base_actions)
optional_actions = filter(is_optional, base_actions)
return list(categorize(required_actions, widget_dict, required=True)) + \
list(categorize(optional_actions, widget_dict)) + \
map(build_radio_group, mutually_exclusive_groups)
示例14: _wait_for_volumes_deleted
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def _wait_for_volumes_deleted(self, context, volmaps, container,
timeout=60, poll_interval=1):
start_time = time.time()
try:
volmaps = itertools.chain(volmaps)
volmap = next(volmaps)
while time.time() - start_time < timeout:
if not volmap.auto_remove:
volmap = next(volmaps)
driver = self._get_driver(container)
is_deleted, is_error = driver.is_volume_deleted(
context, volmap)
if is_deleted:
volmap = next(volmaps)
if is_error:
break
time.sleep(poll_interval)
except StopIteration:
return
msg = _("Volumes cannot be successfully deleted after "
"%d seconds") % (timeout)
self._fail_container(context, container, msg, unset_host=True)
raise exception.Conflict(msg)
示例15: __iter__
# 需要導入模塊: import itertools [as 別名]
# 或者: from itertools import chain [as 別名]
def __iter__(self):
alists = []
for var in self.varieties_iter():
alists.append(self.vars[var]["agents"])
# create an iterator that chains the lists together as if one:
return itertools.chain(*alists)