ENAS代码解读

参考代码:https://github.com/TDeVries/enas_pytorch

数据集:cifar10

main函数:

def main():global argsnp.random.seed(args.seed)torch.cuda.manual_seed(args.seed)if args.fixed_arc:sys.stdout = Logger(filename='logs/' + args.output_filename + '_fixed.log')else:sys.stdout = Logger(filename='logs/' + args.output_filename + '.log')print(args)data_loaders = load_datasets()controller = Controller(search_for=args.search_for,search_whole_channels=True,num_layers=args.child_num_layers,num_branches=args.child_num_branches,out_filters=args.child_out_filters,lstm_size=args.controller_lstm_size,lstm_num_layers=args.controller_lstm_num_layers,tanh_constant=args.controller_tanh_constant,temperature=None,skip_target=args.controller_skip_target,skip_weight=args.controller_skip_weight)controller = controller.cuda()shared_cnn = SharedCNN(num_layers=args.child_num_layers,num_branches=args.child_num_branches,out_filters=args.child_out_filters,keep_prob=args.child_keep_prob)shared_cnn = shared_cnn.cuda()# https://github.com/melodyguan/enas/blob/master/src/utils.py#L218controller_optimizer = torch.optim.Adam(params=controller.parameters(),lr=args.controller_lr,betas=(0.0, 0.999),eps=1e-3)# https://github.com/melodyguan/enas/blob/master/src/utils.py#L213shared_cnn_optimizer = torch.optim.SGD(params=shared_cnn.parameters(),lr=args.child_lr_max,momentum=0.9,nesterov=True,weight_decay=args.child_l2_reg)# https://github.com/melodyguan/enas/blob/master/src/utils.py#L154shared_cnn_scheduler = CosineAnnealingLR(optimizer=shared_cnn_optimizer,T_max=args.child_lr_T,eta_min=args.child_lr_min)if args.resume:if os.path.isfile(args.resume):print("Loading checkpoint '{}'".format(args.resume))checkpoint = torch.load(args.resume)start_epoch = checkpoint['epoch']# args = checkpoint['args']shared_cnn.load_state_dict(checkpoint['shared_cnn_state_dict'])controller.load_state_dict(checkpoint['controller_state_dict'])shared_cnn_optimizer.load_state_dict(checkpoint['shared_cnn_optimizer'])controller_optimizer.load_state_dict(checkpoint['controller_optimizer'])shared_cnn_scheduler.optimizer = shared_cnn_optimizer  # Not sure if this actually worksprint("Loaded checkpoint '{}' (epoch {})".format(args.resume, checkpoint['epoch']))else:raise ValueError("No checkpoint found at '{}'".format(args.resume))else:start_epoch = 0if not args.fixed_arc:train_enas(start_epoch,controller,shared_cnn,data_loaders,shared_cnn_optimizer,controller_optimizer,shared_cnn_scheduler)else:assert args.resume != '', 'A pretrained model should be used when training a fixed architecture.'train_fixed(start_epoch,controller,shared_cnn,data_loaders)

再来看看Controller类的init

class Controller(nn.Module):'''https://github.com/melodyguan/enas/blob/master/src/cifar10/general_controller.py'''def __init__(self,search_for="macro",search_whole_channels=True,num_layers=12,num_branches=6,out_filters=36,lstm_size=32,lstm_num_layers=2,tanh_constant=1.5,temperature=None,skip_target=0.4,skip_weight=0.8):super(Controller, self).__init__()self.search_for = search_for # macroself.search_whole_channels = search_whole_channels # Trueself.num_layers = num_layers # 12self.num_branches = num_branches # 6self.out_filters = out_filters # 36self.lstm_size = lstm_size # 64self.lstm_num_layers = lstm_num_layers # 1self.tanh_constant = tanh_constant # 1.5self.temperature = temperature # Noneself.skip_target = skip_target # 0.4self.skip_weight = skip_weight # 0.8self._create_params()

num_layer为12代表最终生成12层的网络,num_branches为6代表6组操作:3x3,5x5正常卷积层,3x3,5x5深度分离卷积层,平均池化和最大池化,

再看Controller的 _create_params(self)函数:

def _create_params(self):'''https://github.com/melodyguan/enas/blob/master/src/cifar10/general_controller.py#L83'''self.w_lstm = nn.LSTM(input_size=self.lstm_size,hidden_size=self.lstm_size,num_layers=self.lstm_num_layers)self.g_emb = nn.Embedding(1, self.lstm_size)  # Learn the starting inputif self.search_whole_channels:self.w_emb = nn.Embedding(self.num_branches, self.lstm_size)self.w_soft = nn.Linear(self.lstm_size, self.num_branches, bias=False)else:assert False, "Not implemented error: search_whole_channels = False"self.w_attn_1 = nn.Linear(self.lstm_size, self.lstm_size, bias=False)self.w_attn_2 = nn.Linear(self.lstm_size, self.lstm_size, bias=False)self.v_attn = nn.Linear(self.lstm_size, 1, bias=False)self._reset_params()

没啥好解释的,这里值得注意的是第九行,controller的初始输入为1的embbeding:

self.g_emb = nn.Embedding(1, self.lstm_size)

重点看看forward()函数:

def forward(self):'''https://github.com/melodyguan/enas/blob/master/src/cifar10/general_controller.py#L126'''h0 = None  # setting h0 to None will initialize LSTM state with 0sanchors = []anchors_w_1 = []arc_seq = {}entropys = []log_probs = []skip_count = []skip_penaltys = []inputs = self.g_emb.weight# print('cccccccccccccccc')# print(inputs)# print(inputs.shape)# import sys# sys.exit()skip_targets = torch.tensor([1.0 - self.skip_target, self.skip_target]).cuda()for layer_id in range(self.num_layers):if self.search_whole_channels:inputs = inputs.unsqueeze(0)output, hn = self.w_lstm(inputs, h0)output = output.squeeze(0)h0 = hnlogit = self.w_soft(output)if self.temperature is not None:logit /= self.temperatureif self.tanh_constant is not None:logit = self.tanh_constant * torch.tanh(logit)branch_id_dist = Categorical(logits=logit)branch_id = branch_id_dist.sample()arc_seq[str(layer_id)] = [branch_id]log_prob = branch_id_dist.log_prob(branch_id)log_probs.append(log_prob.view(-1))entropy = branch_id_dist.entropy()entropys.append(entropy.view(-1))inputs = self.w_emb(branch_id)inputs = inputs.unsqueeze(0)else:# https://github.com/melodyguan/enas/blob/master/src/cifar10/general_controller.py#L171assert False, "Not implemented error: search_whole_channels = False"output, hn = self.w_lstm(inputs, h0)output = output.squeeze(0)if layer_id > 0:query = torch.cat(anchors_w_1, dim=0)query = torch.tanh(query + self.w_attn_2(output))query = self.v_attn(query)logit = torch.cat([-query, query], dim=1)if self.temperature is not None:logit /= self.temperatureif self.tanh_constant is not None:logit = self.tanh_constant * torch.tanh(logit)skip_dist = Categorical(logits=logit)skip = skip_dist.sample()skip = skip.view(layer_id)arc_seq[str(layer_id)].append(skip)skip_prob = torch.sigmoid(logit)kl = skip_prob * torch.log(skip_prob / skip_targets)kl = torch.sum(kl)skip_penaltys.append(kl)log_prob = skip_dist.log_prob(skip)log_prob = torch.sum(log_prob)log_probs.append(log_prob.view(-1))entropy = skip_dist.entropy()entropy = torch.sum(entropy)entropys.append(entropy.view(-1))# Calculate average hidden state of all nodes that got skips# and use it as input for next stepskip = skip.type(torch.float)skip = skip.view(1, layer_id)skip_count.append(torch.sum(skip))inputs = torch.matmul(skip, torch.cat(anchors, dim=0))inputs /= (1.0 + torch.sum(skip))else:inputs = self.g_emb.weightanchors.append(output)anchors_w_1.append(self.w_attn_1(output))self.sample_arc = arc_seqentropys = torch.cat(entropys)self.sample_entropy = torch.sum(entropys)log_probs = torch.cat(log_probs)self.sample_log_prob = torch.sum(log_probs)skip_count = torch.stack(skip_count)self.skip_count = torch.sum(skip_count)skip_penaltys = torch.stack(skip_penaltys)self.skip_penaltys = torch.mean(skip_penaltys)

32-35行及61至64行对应的是论文Training details里描述的:我们将tanh常数2.5和温度5.0应用于控制器的logits,并将控制器样本的熵添加到奖励中,权重为0.1。

37-38行是按logit的概率进行采样,返回采样的index。

42行log_prob解释(https://pytorch.org/docs/stable/distributions.html#torch.distributions.categorical.Categorical.log_prob):

当概率密度函数的参数可微时,我们只需要sample()和log_prob()来实现REINFORCE:

在这里插入图片描述

在实践中,我们将从网络的输出中取样一个操作,将该操作应用到环境中,然后使用log_prob构造一个等效的损失函数。注意,我们使用了一个负数,因为优化器使用梯度下降,而上面的规则假设梯度上升。有了明确的政策,实施加强的准则如下:

probs = policy_network(state)
# Note that this is equivalent to what used to be called multinomial
m = Categorical(probs)
action = m.sample()
next_state, reward = env.step(action)
loss = -m.log_prob(action) * reward
loss.backward()

接下来42-45将控制器的样本熵添加到奖励中,然后把被采样的branch_id(对应于上面描述的6个卷积,池化等操作),再把branch_id embbeding一下,得到下一时刻LSTM的输入。

72-75行对应的论文里Training details里描述的:在宏搜索空间中,我们通过增加两层之间的KL散度来增强跳跃连接的稀疏性:1)任意两层之间的跳跃连接概率;2)我们选择的概率ρ=0.4,它表示形成跳跃连接的先验信念。这个KL发散项的权重是0.8。

KL散度公式:

在这里插入图片描述

57-59行为attention。

60行是为了形成0,1分类,

接下来再看看ShareCNN( )代码:

先看 init()函数:

class SharedCNN(nn.Module):def __init__(self,num_layers=12,num_branches=6,out_filters=24,keep_prob=1.0,fixed_arc=None):super(SharedCNN, self).__init__()self.num_layers = num_layers # 12self.num_branches = num_branches # 6self.out_filters = out_filters # 36self.keep_prob = keep_prob # 0.9self.fixed_arc = fixed_arcpool_distance = self.num_layers // 3self.pool_layers = [pool_distance - 1, 2 * pool_distance - 1]self.stem_conv = nn.Sequential(nn.Conv2d(3, out_filters, kernel_size=3, padding=1, bias=False),nn.BatchNorm2d(out_filters, track_running_stats=False))self.layers = nn.ModuleList([])self.pooled_layers = nn.ModuleList([])for layer_id in range(self.num_layers):if self.fixed_arc is None:layer = ENASLayer(layer_id, self.out_filters, self.out_filters)else:layer = FixedLayer(layer_id, self.out_filters, self.out_filters, self.fixed_arc[str(layer_id)])self.layers.append(layer)if layer_id in self.pool_layers:for i in range(len(self.layers)):if self.fixed_arc is None:self.pooled_layers.append(FactorizedReduction(self.out_filters, self.out_filters))else:self.pooled_layers.append(FactorizedReduction(self.out_filters, self.out_filters * 2))if self.fixed_arc is not None:self.out_filters *= 2self.global_avg_pool = nn.AdaptiveAvgPool2d((1, 1))self.dropout = nn.Dropout(p=1. - self.keep_prob)self.classify = nn.Linear(self.out_filters, 10)for m in self.modules():if isinstance(m, nn.Conv2d):nn.init.kaiming_uniform_(m.weight, mode='fan_in', nonlinearity='relu')

注意17-18行,第3,7层为pool layer。20-22行输入经过一个3x3卷积和BatchNorm层,再进入网络架构搜索模块。当fixed_arc为None时,调用ENASLayer()函数,代码如下:

class ENASLayer(nn.Module):'''https://github.com/melodyguan/enas/blob/master/src/cifar10/general_child.py#L245'''def __init__(self, layer_id, in_planes, out_planes):super(ENASLayer, self).__init__()self.layer_id = layer_idself.in_planes = in_planesself.out_planes = out_planesself.branch_0 = ConvBranch(in_planes, out_planes, kernel_size=3)self.branch_1 = ConvBranch(in_planes, out_planes, kernel_size=3, separable=True)self.branch_2 = ConvBranch(in_planes, out_planes, kernel_size=5)self.branch_3 = ConvBranch(in_planes, out_planes, kernel_size=5, separable=True)self.branch_4 = PoolBranch(in_planes, out_planes, 'avg')self.branch_5 = PoolBranch(in_planes, out_planes, 'max')self.bn = nn.BatchNorm2d(out_planes, track_running_stats=False)def forward(self, x, prev_layers, sample_arc):layer_type = sample_arc[0]if self.layer_id > 0:skip_indices = sample_arc[1]else:skip_indices = []if layer_type == 0:out = self.branch_0(x)elif layer_type == 1:out = self.branch_1(x)elif layer_type == 2:out = self.branch_2(x)elif layer_type == 3:out = self.branch_3(x)elif layer_type == 4:out = self.branch_4(x)elif layer_type == 5:out = self.branch_5(x)else:raise ValueError("Unknown layer_type {}".format(layer_type))for i, skip in enumerate(skip_indices):if skip == 1:out += prev_layers[i]out = self.bn(out)return out

branch_0 — branch_5分别为3x3正常卷积,3x3分离卷积,5x5正常卷积,5x5分离卷积,平均池化,最大池化。

回到ShareCNN的init函数,当layer_id为3,7时,后面还要加上一个Reduction层,及FactorizedReduction()函数。

FactorizedReduction函数代码:

class FactorizedReduction(nn.Module):'''Reduce both spatial dimensions (width and height) by a factor of 2, and potentially to change the number of output filtershttps://github.com/melodyguan/enas/blob/master/src/cifar10/general_child.py#L129'''def __init__(self, in_planes, out_planes, stride=2):super(FactorizedReduction, self).__init__()assert out_planes % 2 == 0, ("Need even number of filters when using this factorized reduction.")self.in_planes = in_planesself.out_planes = out_planesself.stride = strideif stride == 1:self.fr = nn.Sequential(nn.Conv2d(in_planes, out_planes, kernel_size=1, bias=False),nn.BatchNorm2d(out_planes, track_running_stats=False))else:self.path1 = nn.Sequential(nn.AvgPool2d(1, stride=stride),nn.Conv2d(in_planes, out_planes // 2, kernel_size=1, bias=False))self.path2 = nn.Sequential(nn.AvgPool2d(1, stride=stride),nn.Conv2d(in_planes, out_planes // 2, kernel_size=1, bias=False))self.bn = nn.BatchNorm2d(out_planes, track_running_stats=False)def forward(self, x):if self.stride == 1:return self.fr(x)else:path1 = self.path1(x)# pad the right and the bottom, then crop to include those pixelspath2 = F.pad(x, pad=(0, 1, 0, 1), mode='constant', value=0.)path2 = path2[:, :, 1:, 1:]path2 = self.path2(path2)out = torch.cat([path1, path2], dim=1)out = self.bn(out)return out

代码逻辑很简洁,没啥好介绍的。

接下来看train_eans( )函数:

def train_enas(start_epoch,controller,shared_cnn,data_loaders,shared_cnn_optimizer,controller_optimizer,shared_cnn_scheduler):"""Perform architecture search by training a controller and shared_cnn.Args:start_epoch: Epoch to begin on.controller: Controller module that generates architectures to be trained.shared_cnn: CNN that contains all possible architectures, with shared weights.data_loaders: Dict containing data loaders.shared_cnn_optimizer: Optimizer for the shared_cnn.controller_optimizer: Optimizer for the controller.shared_cnn_scheduler: Learning rate schedular for shared_cnn_optimizerReturns: Nothing."""baseline = Nonefor epoch in range(start_epoch, args.num_epochs):train_shared_cnn(epoch,controller,shared_cnn,data_loaders,shared_cnn_optimizer)baseline = train_controller(epoch,controller,shared_cnn,data_loaders,controller_optimizer,baseline)if epoch % args.eval_every_epochs == 0:evaluate_model(epoch, controller, shared_cnn, data_loaders)shared_cnn_scheduler.step(epoch)state = {'epoch': epoch + 1,'args': args,'shared_cnn_state_dict': shared_cnn.state_dict(),'controller_state_dict': controller.state_dict(),'shared_cnn_optimizer': shared_cnn_optimizer.state_dict(),'controller_optimizer': controller_optimizer.state_dict()}filename = 'checkpoints/' + args.output_filename + '.pth.tar'torch.save(state, filename)

先固定Controller,训练ShareCNN,再固定ShareCNN,训练Controller,迭代进行。

train_share_cnn()函数:

def train_shared_cnn(epoch,controller,shared_cnn,data_loaders,shared_cnn_optimizer,fixed_arc=None):"""Train shared_cnn by sampling architectures from the controller.Args:epoch: Current epoch.controller: Controller module that generates architectures to be trained.shared_cnn: CNN that contains all possible architectures, with shared weights.data_loaders: Dict containing data loaders.shared_cnn_optimizer: Optimizer for the shared_cnn.fixed_arc: Architecture to train, overrides the controller sample...Returns: Nothing."""global vis_wincontroller.eval()if fixed_arc is None:# Use a subset of the training set when searching for an arhcitecturetrain_loader = data_loaders['train_subset']else:# Use the full training set when training a fixed architecturetrain_loader = data_loaders['train_dataset']train_acc_meter = AverageMeter()loss_meter = AverageMeter()for i, (images, labels) in enumerate(train_loader):start = time.time()images = images.cuda()labels = labels.cuda()if fixed_arc is None:with torch.no_grad():controller()  # perform forward pass to generate a new architecturesample_arc = controller.sample_arcelse:sample_arc = fixed_arcshared_cnn.zero_grad()pred = shared_cnn(images, sample_arc)loss = nn.CrossEntropyLoss()(pred, labels)loss.backward()grad_norm = torch.nn.utils.clip_grad_norm_(shared_cnn.parameters(), args.child_grad_bound)shared_cnn_optimizer.step()train_acc = torch.mean((torch.max(pred, 1)[1] == labels).type(torch.float))train_acc_meter.update(train_acc.item())loss_meter.update(loss.item())end = time.time()if (i) % args.log_every == 0:learning_rate = shared_cnn_optimizer.param_groups[0]['lr']display = 'epoch=' + str(epoch) + \'\tch_step=' + str(i) + \'\tloss=%.6f' % (loss_meter.val) + \'\tlr=%.4f' % (learning_rate) + \'\t|g|=%.4f' % (grad_norm) + \'\tacc=%.4f' % (train_acc_meter.val) + \'\ttime=%.2fit/s' % (1. / (end - start))print(display)controller.train()

先用Controller sample出一个子模型,然后进行训练,然后记录acc。

train_controller代码:

def train_controller(epoch,controller,shared_cnn,data_loaders,controller_optimizer,baseline=None):"""Train controller to optimizer validation accuracy using REINFORCE.Args:epoch: Current epoch.controller: Controller module that generates architectures to be trained.shared_cnn: CNN that contains all possible architectures, with shared weights.data_loaders: Dict containing data loaders.controller_optimizer: Optimizer for the controller.baseline: The baseline score (i.e. average val_acc) from the previous epochReturns: baseline: The baseline score (i.e. average val_acc) for the current epochFor more stable training we perform weight updates using the average ofmany gradient estimates. controller_num_aggregate indicates how many sampleswe want to average over (default = 20). By default PyTorch will sum gradientseach time .backward() is called (as long as an optimizer step is not taken),so each iteration we divide the loss by controller_num_aggregate to get the average.https://github.com/melodyguan/enas/blob/master/src/cifar10/general_controller.py#L270"""print('Epoch ' + str(epoch) + ': Training controller')# global vis_winshared_cnn.eval()valid_loader = data_loaders['valid_subset']reward_meter = AverageMeter()baseline_meter = AverageMeter()val_acc_meter = AverageMeter()loss_meter = AverageMeter()controller.zero_grad()for i in range(args.controller_train_steps * args.controller_num_aggregate):start = time.time()images, labels = next(iter(valid_loader))images = images.cuda()labels = labels.cuda()controller()  # perform forward pass to generate a new architecturesample_arc = controller.sample_arcwith torch.no_grad():pred = shared_cnn(images, sample_arc)val_acc = torch.mean((torch.max(pred, 1)[1] == labels).type(torch.float))# detach to make sure that gradients aren't backpropped through the rewardreward = torch.tensor(val_acc.detach())reward += args.controller_entropy_weight * controller.sample_entropyif baseline is None:baseline = val_accelse:baseline -= (1 - args.controller_bl_dec) * (baseline - reward)# detach to make sure that gradients are not backpropped through the baselinebaseline = baseline.detach()loss = -1 * controller.sample_log_prob * (reward - baseline)if args.controller_skip_weight is not None:loss += args.controller_skip_weight * controller.skip_penaltysreward_meter.update(reward.item())baseline_meter.update(baseline.item())val_acc_meter.update(val_acc.item())loss_meter.update(loss.item())# Average gradient over controller_num_aggregate samplesloss = loss / args.controller_num_aggregateloss.backward(retain_graph=True)end = time.time()# Aggregate gradients for controller_num_aggregate iterationa, then update weightsif (i + 1) % args.controller_num_aggregate == 0:grad_norm = torch.nn.utils.clip_grad_norm_(controller.parameters(), args.child_grad_bound)controller_optimizer.step()controller.zero_grad()if (i + 1) % (2 * args.controller_num_aggregate) == 0:learning_rate = controller_optimizer.param_groups[0]['lr']display = 'ctrl_step=' + str(i // args.controller_num_aggregate) + \'\tloss=%.3f' % (loss_meter.val) + \'\tent=%.2f' % (controller.sample_entropy.item()) + \'\tlr=%.4f' % (learning_rate) + \'\t|g|=%.4f' % (grad_norm) + \'\tacc=%.4f' % (val_acc_meter.val) + \'\tbl=%.2f' % (baseline_meter.val) + \'\ttime=%.2fit/s' % (1. / (end - start))print(display)shared_cnn.train()return baseline

用强化学习训练,用采样子模型的acc和控制器熵添作为reward,熵权重为0.1,为了减少方差,reward减去一个baseline,baseline为reward的移动平均基线。然后用策略梯度公式更新controller。66行为计算强化学习loss。68-69行为把前面提到的KL作为损失加入进loss里,以增强跳跃连接的稀疏性。加个负号后反向传播loss,用梯度下降更新模型。

补充:


得分函数

当概率密度函数相对于其参数可微分时, 我们只需要sample()log_prob()来实现REINFORCE:

b50e881c13615b1d9aa00ad0c9cdfa99.jpg

51b8359f970d2bfe2ad4cdc3ac1aed3c.jpg 是参数, 82005cc2e0087e2a52c7e43df4a19a00.jpg 是学习速率, f9f040e861365a0560b2552b4e4e17da.jpg 是奖励 并且 2e84bb32ea0808870a16b888aeaf8d0d.jpg 是在状态 0492c0bfd615cb5e61c847ece512ff51.jpg 以及给定策略 5f3ddae3395c04f9346a3ac1d327ae2a.jpg执行动作 070b1af5eca3a5c5d72884b536090f17.jpg 的概率.

在实践中, 我们将从网络输出中采样一个动作, 将这个动作应用于一个环境中, 然后使用log_prob构造一个等效的损失函数. 请注意, 我们使用负数是因为优化器使用梯度下降, 而上面的规则假设梯度上升. 有了确定的策略, REINFORCE的实现代码如下:

probs = policy_network(state)
# Note that this is equivalent to what used to be called multinomial
m = Categorical(probs)
action = m.sample()
next_state, reward = env.step(action)
loss = -m.log_prob(action) * reward
loss.backward()

转存中…(img-vAU4Xiu8-1594179710154)]

[外链图片转存中…(img-2SQqq9RE-1594179710155)] 是参数, [外链图片转存中…(img-XItub8OJ-1594179710156)] 是学习速率, [外链图片转存中…(img-7in5zxVt-1594179710156)] 是奖励 并且 [外链图片转存中…(img-0pFmPxGF-1594179710157)] 是在状态 [外链图片转存中…(img-hHi0NgtV-1594179710157)] 以及给定策略 [外链图片转存中…(img-lTprVpkz-1594179710157)]执行动作 [外链图片转存中…(img-x22cUOjD-1594179710158)] 的概率.

在实践中, 我们将从网络输出中采样一个动作, 将这个动作应用于一个环境中, 然后使用log_prob构造一个等效的损失函数. 请注意, 我们使用负数是因为优化器使用梯度下降, 而上面的规则假设梯度上升. 有了确定的策略, REINFORCE的实现代码如下:

probs = policy_network(state)
# Note that this is equivalent to what used to be called multinomial
m = Categorical(probs)
action = m.sample()
next_state, reward = env.step(action)
loss = -m.log_prob(action) * reward
loss.backward()

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Golang语言基础教程:goto语句

    goto:可以无条件地转移到过程中指定的行。语法结构:goto label; .. .. label: statement;package main ​ import "fmt" ​ func main() {/* 定义局部变量 */var a int = 10 ​/* 循环 */LOOP: for a < 20 {if a == 15 {/* 跳过迭代 */a = a + 1goto LOOP}fmt.P…...

    2024/4/18 9:38:25
  2. C函数的参数中有取地址符&

    一 前言 之前在函数中看到函数的形参中存在取地址符&,一直不知道什么意思。然后又一次碰到了,就把它搞定。 void partition(int a[], int s, int t, int &k) //划分函数 {int i, j, x;x = a[s]; //取划分元素i = s; j = t; //扫描指针初值do // 循环地进行划分{while…...

    2024/5/3 13:45:52
  3. 简单实用的二级树形菜单hovertree

    原创 hovertree是一个仿京东的树形菜单jquery插件,暂时有银色和绿色两种。官方网址:http://keleyi.com/jq/hovertree/欢迎下载使用查看绿色效果:http://keleyi.com/jq/hovertree/hovertreegreen.htm可以设置菜单宽度(width),还可以设置是否最多只能有一个一级菜单展开(isCl…...

    2024/4/24 13:24:05
  4. java数组转集合ArrayList的坑

    如何将一个数组转换成一个集合,我们首先想到的一个方法是通过java自带的api实现,Arrays.asList(T t);使用这种方式将数组转成集合的话,需要特别注意,这个api返回的ArrayList并不是我常用的java.util.ArrayList,他是一个Arrays的一个内部类,java.util.Arrays$ArrayList这个…...

    2024/4/16 12:27:47
  5. Golang语言基础教程:数组(Array)的初步使用

    1.1 什么是数组Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引…...

    2024/4/20 0:40:51
  6. java中Arrays类详解

    java中Arrays类详解 Arrays需要导包,import java.out.Arrays;Arrays:针对数组进行操作的工具类。比如说排序和查找。 1:public static String toString(int[] a) 把数组转成字符串 2:public static void sort(int[] a) 对数组进行排序 3:public static int binarySearch(int[]…...

    2024/5/2 2:35:29
  7. mybatis 读取全局配置文件的java类

    mybatis 读取全局配置文件的java类 package db;import java.io.IOException; import java.io.InputStream;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.iba…...

    2024/5/3 11:41:58
  8. 使用Elasticsearch搭建一个文件搜索系统 [HTTPS]

    在文章原创 使用Elasticsearch搭建一个文件搜索系统(带界面)里面,我提到过搭建这样的一个本地文件搜索系统。现在我们越来越强调安全意识,通常需要使用https去保护Client和Elasticsearch之间的通信,这时,如何使用fscrawler,通过https访问elasticsearch呢? Elasticsearc…...

    2024/5/3 7:35:00
  9. MTF 曲线图应该怎么看?

    https://www.zhihu.com/question/19713211要看懂MTF图,先解释两个术语,对比度和分辨率, 提到对比度,可能会想到Lightroom里为提高画面对比度的滑块, 提到分辨率,可能会想到相机的的感光元件分辨率或照片的分辨率,像1920x1080等,但在镜头的世界里,它们代表着其他东西。…...

    2024/4/25 16:29:34
  10. 【项目管理】如何进行项目期望管理?

    ...

    2024/4/16 6:16:31
  11. 螣龙安科入侵感知:了解你的入侵检测系统

    入侵检测系统是任何企业网络安全环境的重要组成部分。 它监测网络流量中是否存在异常活动,并在检测到此类活动时发出警报或响应。 这听起来很简单,但是必须对入侵解决方案进行不断的微调,以区分正常的网络流量和潜在的恶意行为。随着流量和黑客的不断发展,虚假警报可能会经…...

    2024/4/20 3:45:03
  12. json对象 数组去掉重复的数据

    for (var i = 0; i < list.length; i++) {for (var j = i + 1; j < list.length;) {if (list[i].id== list[j].id) {list.splice(j, 1);//去除重复的对象;layer.alert(不能添加重复的数据);break;} else {j++;}}}console.log(list)...

    2024/4/16 6:16:46
  13. ngrok的使用

    碰到涉及到微信公众号的需求时,我们不会没事自己去申请一个公众号来玩,而且,个人开通的一般都是订阅号而不是服务号,订阅号的问题就是功能比较简单,一些高级的公众号接口是无法调用的。 为了方便开发测试,我们可以使用微信公众平台的一个测试号来做开发测试。 测试号地址…...

    2024/5/3 11:38:48
  14. PLM-白话文

    LM-白话文这里要说的PLM是产品生命周期管理(Product LifeCycle Management),其他任何类型的解释均不在本次白话文范围,用简单的方式,实现清晰易懂的表达;产品生命周期管理(PLM)是一个概念,一类统称,一种思想,一项解决方案,包含从产品创意开始直至产品报废消亡的生命周…...

    2024/5/3 1:40:49
  15. 学习打卡 7.8-7.9

    蒙特卡洛模型 1.概述思考: 1.蒙特卡洛是算法吗?2.蒙特卡洛与计算机仿真之间的关系3.蒙特卡洛与枚举法2.应用实例 (1)三门问题预备知识:不考虑失败考虑失败(2)模拟排队问题建立模型:预备知识:问题1问题2(3)有约束的非线性规划问题预备知识:代码(4)书店买书问题(0…...

    2024/3/28 18:37:31
  16. LeetCode——面试题16.11 跳水板

    跳水板题目思路代码结果改进思路代码结果再改进思路代码结果 题目 你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。 返回的长度需要从小到大…...

    2024/5/3 10:08:02
  17. Spring IOC容器是如何解决循环依赖的问题?

    什么是循环依赖?先看代码:public class A {private B b;// 省略set/get方法 }public class B {private A a;// 省略set/get方法 }可以看到A类里有一个属性是B类对象,而B类里也有一个属性是A类对象,则我们可以称A类对象与B类对象之间互相循环依赖。然后我们对把这俩个类纳入…...

    2024/4/16 6:16:31
  18. 使用Docker快速搭建Wordpress个人博客

    参考了b站程序羊的教程,过程简单,但还是遇到了一些视频里没有的意外,所以重新梳理了一遍需要安装的插件和环境。 https://www.bilibili.com/video/BV12E41127Uj?t=455 使用Docker快速搭建Wordpress: 1.安装 pip: yum -y install epel-release yum -y install python-pip#升…...

    2024/4/16 6:16:31
  19. Python学习笔记22-Mysql拓展

    1、sql语句参数化防止sql注入(使用%s作为占位符) from pymysql import *def main():find_name = input("请输入物品名称:")# 创建Connection连接conn = connect(host=localhost,port=3306,user=root,password=mysql,database=jing_dong,charset=utf8)# 获得Cursor…...

    2024/4/4 20:31:51
  20. pytorch optimizer同时优化多组参数报错ValueError: some parameters appear in more than one parameter group

    代码:optimizer = torch.optim.SGD([{params: paras_wo_bn + [kernel], weight_decay: 5e-4},{params: paras_only_bn}], lr=config[lr], momentum=config[momentum], weight_decay=config[weight_decay])报错: Traceback (most recent call last):File "/home/use1/tes…...

    2024/5/2 23:40:58

最新文章

  1. im即时通讯源码/仿微信app源码+php即时通讯源码带红包+客服+禁言等系统php+uniapp开发

    即时通讯(IM)系统是现代互联网应用中不可或缺的一部分&#xff0c;它允许用户进行实时的文本、语音、视频交流。随着技术的发展&#xff0c;IM系统的功能越来越丰富&#xff0c;如红包、客服、禁言等。本文将探讨如何使用PHP语言开发一个功能完备的即时通讯系统&#xff0c;包括…...

    2024/5/3 17:22:58
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【Ubuntu】 Github Readme导入GIF

    1.工具安装 我们使用 ffmpeg 软件来完成转换工作1.1 安装命令 sudo add-apt-repository ppa:jonathonf/ffmpeg-3sudo apt-get updatesudo apt-get install ffmpeg1.2 转换命令 &#xff08;1&#xff09;直接转换命令&#xff1a; ffmpeg -i out.mp4 out.gif(2) 带参数命令&…...

    2024/5/2 10:32:23
  4. 【Redis】安装Redis后报ERR Client sent AUTH, but no password is set

    一、问题描述 安装Redis后使用auth验证是否安装成功&#xff08;或者其它应用访问redis时报错&#xff09;&#xff0c;报ERR Client sent AUTH, but no password is set 127.0.0.1:6379> auth 123456 (error) ERR Client sent AUTH, but no password is set二、问题解决 …...

    2024/5/1 12:59:02
  5. 面试算法-140-接雨水

    题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2…...

    2024/5/1 13:55:50
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57