首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
社区首页 >问答
筛选
回答情况:
全部无回答回答未采纳
提问时间:
不限一周内一月内三月内一年内
回答标签:
编程算法

CVM云服务器通过VNC输入正确的密码后无法正常登录?

提问2020-12-30501
替身
回答来自于问答智囊团成员:赵智勇 专栏:https://cloud.tencent.com/developer/user/4476879 排查思路: 1.在vnc无法正常登录时可以先尝试ssh能否正常登录进系统,如果ssh也不行就需要进单用户模式,通过控制台进入linux单用户模式可参考: https://cloud.tencent.com/developer/article/1731813 2.进入系统后通过vim /var/log/secure查看日志,该文件一般用来记录安全相关的信息,记录最多的是哪些用户登录服务器的相关日志,核实到有/lib/security/pam_limits.so的报错信息 📷 3.进入/etc/pam.d后通过以下命令搜索日志中报错的pam模块的关键字/lib/security/pam_limits.so,就找到了是system-auth文件中配置了这个参数 find . | xargs grep -ri "/lib/security/pam_limits.so" -l 📷 原因分析: 由于VNC登录会调用/etc/pam.d/login这个pam模块进行校验,而这个模块会将/etc/pam.d/system-auth这个模块引入进行校验,如下图是/etc/pam.d/login配置文件的内容: 📷 导致登录失败的原因是system-auth配置文件中的pam_limits.so模块的模块路径写错了,pam_limits.so模块的主要功能是限制用户会话过程中对各种系统资源的使用情况,这里如果是64位的系统可以写成绝对路径/lib64/security/pam_limits.so,也可以直接写成相对路径pam_limits.so,写错路径的话会导致找不到对应的认证模块,导致登录认证报错。 📷 解决方案 在vnc登录不上的时候可以尝试通过ssh远程登录实例,登录上之后修改pam_limits.so模块的模块路径即可,如果ssh也无法正常登录,此时就需要通过单用户模式或者救援模式进入系统后再修改配置,如仍无法登录可以提交工单解决

如何实现深度强化学习(DQN)?

提问2018-10-103.2K
印度陆军医院
DQN实现DEMO 找了很多DQN的例子,有原版的实现Atari的,也有Flappy Bird的,但是最简单的还是莫烦大神的Demo,github地址是:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow。 📷 其中,红色的方块代表寻宝人,黑色的方块代表陷阱,黄色的方块代表宝藏,我们的目标就是让寻宝人找到最终的宝藏。 这里,我们的状态可以用横纵坐标表示,而动作有上下左右四个动作。使用tkinter来做这样一个动画效果。宝藏的奖励是1,陷阱的奖励是-1,而其他时候的奖励都为0。 接下来,我们重点看一下我们DQN相关的代码。 定义相关输入 这了,我们用s代表当前状态,用a代表当前状态下采取的动作,r代表获得的奖励,s_代表转移后的状态。 self.s = tf.placeholder(tf.float32,[None,self.n_features],name='s') self.s_ = tf.placeholder(tf.float32,[None,self.n_features],name='s_') self.r = tf.placeholder(tf.float32,[None,],name='r') self.a = tf.placeholder(tf.int32,[None,],name='a') 经验池 def store_transition(self,s,a,r,s_): if not hasattr(self, 'memory_counter'): self.memory_counter = 0 # hstack:Stack arrays in sequence horizontally transition = np.hstack((s,[a,r],s_)) index = self.memory_counter % self.memory_size self.memory[index,:] = transition self.memory_counter += 1 双网络结构 target_net和eval_net的网络结构必须保持一致,这里我们使用的是两层全链接的神经网络,值得注意的一点是对于eval_net来说,网络的输入是当前的状态s,而对target_net网络来说,网络的输入是下一个状态s_,因为target_net的输出要根据贝尔曼公式计算q-target值,即 📷 代码如下: w_initializer, b_initializer = tf.random_normal_initializer(0., 0.3), tf.constant_initializer(0.1) # ------------------ build evaluate_net ------------------ with tf.variable_scope('eval_net'): e1 = tf.layers.dense(self.s,20,tf.nn.relu,kernel_initializer=w_initializer, bias_initializer=b_initializer,name='e1' ) self.q_eval = tf.layers.dense(e1,self.n_actions,kernel_initializer=w_initializer, bias_initializer=b_initializer,name='q') # ------------------ build target_net ------------------ with tf.variable_scope('target_net'): t1 = tf.layers.dense(self.s_, 20, tf.nn.relu, kernel_initializer=w_initializer, bias_initializer=b_initializer, name='t1') self.q_next = tf.layers.dense(t1, self.n_actions, kernel_initializer=w_initializer, bias_initializer=b_initializer, name='t2') 每隔一定的步数,我们就要将target_net中的参数复制到eval_net中: t_params = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES,scope='target_net') e_params = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES,scope='eval_net') with tf.variable_scope('soft_replacement'): self.target_replace_op = [tf.assign(t,e) for t,e in zip(t_params,e_params)] 计算损失并优化 首先,对于eval_net来说,我们只要得到当前的网络输出即可,但是我们定义的网络输出是四个动作对应的q-eval值,我们要根据实际的a来选择对应的q-eval值,这一部分的代码如下: with tf.variable_scope('q_eval'): # tf.stack #a = tf.constant([1,2,3]) # b = tf.constant([4,5,6]) # c = tf.stack([a,b],axis=1) # [[1 4] # [2 5] # [3 6]] a_indices = tf.stack([tf.range(tf.shape(self.a)[0], dtype=tf.int32), self.a], axis=1) # 用indices从张量params得到新张量 # indices = [[0, 0], [1, 1]] # params = [['a', 'b'], ['c', 'd']] # output = ['a', 'd'] # 这里self.q_eval是batch * action_number,a_indices是batch * 1,也就是说选择当前估计每个动作的Q值 self.q_eval_wrt_a = tf.gather_nd(params=self.q_eval, indices=a_indices) 中间有几个函数不太了解的,上面都有详细的注释,如果还不是很理解的话,大家可以百度或者阅读相应函数的源码。 对于target_net网络来说,我们要根据下面的式子来计算q-target值: 📷 第一部分的R我们是已经得到了的,剩下的就是根据贪心策略选择四个输出中最大的一个即可: with tf.variable_scope('q_target'): q_target = self.r + self.gamma * tf.reduce_max(self.q_next,axis=1,name='Qmax_s_') # 一个节点被 stop之后,这个节点上的梯度,就无法再向前BP了 self.q_target = tf.stop_gradient(q_target) 接下来,我们就可以定义我们的损失函数并选择优化器进行优化: with tf.variable_scope('loss'): self.loss = tf.reduce_mean(tf.squared_difference(self.q_target,self.q_eval_wrt_a,name='TD_error')) with tf.variable_scope('train'): self._train_op = tf.train.RMSPropOptimizer(self.lr).minimize(self.loss) 网络的训练 每隔一定的步数,我们就要将eval_net中的参数复制到target_net中,同时我们要从经验池中选择batch大小的数据输入到网络中进行训练。 def learn(self): if self.learn_step_counter % self.replace_target_iter == 0: self.sess.run(self.target_replace_op) print('\ntarget_params_replaced\n') if self.memory_counter > self.memory_size: sample_index = np.random.choice(self.memory_size,size=self.batch_size) else: sample_index = np.random.choice(self.memory_counter,size = self.batch_size) batch_memory = self.memory[sample_index,:] _,cost = self.sess.run( [self._train_op,self.loss], feed_dict={ self.s:batch_memory[:,:self.n_features], self.a:batch_memory[:,self.n_features], self.r:batch_memory[:,self.n_features+1], self.s_:batch_memory[:,-self.n_features:] } )

如何理解语音识别中的CTC算法?

提问2018-10-121.5K
蓝蓝天上vzh
路径π和B变换: 在实际训练中并不知道每一帧对应的音素,因此进行训练比较困难。可以先考虑一种简单的情况,已知每一帧的音素的标签z′, 即训练样本为x和z′,其中z′不再是简单的[n,i,h,a,o]标签,而是: [图片] 在我们的例子中, z′=[n,n,n,n,n,n,n,i,i,i,i,i,i,h,h,h,h,h,h,h,a,a,a,a,a,a,o,o,o,o,o,o,o], z′包含了每一帧的标签。在这种情况下有: [图片] (1) 该值即为后验概率图中用黑线圈起来的部分相乘。我们希望相乘的值越大越好,因此,数学规划可以写为: [图片] (2) [图片] (3) 目标函数对于后验概率矩阵y中的每个元素 [图片] 的偏导数为: [图片] 也就是说,在每个时刻t(对应矩阵的一列),目标只与 [图片] 是相关的,在这个例子中是与被框起来的元素相关。 其中Nw可以看做是RNN模型,如果训练数据的每一帧都标记了正确的音素,那么训练过程就很简单了,但实际上这样的标记过的数据非常稀少,而没有逐帧标记的数据很多,CTC可以做到用未逐帧标记的数据做训练。 首先定义几个符号: [图片] 表示所有音素的集合 [图片] 表示一条由L中元素组成的长度为T的路径,比如z′就是一条路径,以下为几个路径的例子: [图片] 这6条路径中, π1可以被认为是“今夜无人入睡”, π2可以被认为是在说“你好”,π3可以被认为是在说“好你”,π4,π5,π6都可以认为是在说“你好”。 定义B变换,表示简单的压缩,例如: B(a,a,a,b,b,b,c,c,d)=(a,b,c,d) 以上6条路径为例: B(π1)=(j,i,n,y,e,w,u,r,e,n,r,u,s,h,u,i) B(π2)=(n,i,h,a,) B(π3)=(h,a,o,n,i) B(π4)=(n,i,h,a,o) B(π5)=(n,i,h,a,o) B(π6)=(n,i,h,a,o) 因此,如果有一条路径π有B(π)=(n,i,h,a,o),则可以认为π是在说“你好”。即使它是如π4所示,有很多“o”的音素,而其他音素很少。路径π=(π1,π2,...,πT)的概率为它所经过的矩阵y上的元素相乘: [图片] 因此在没有对齐的情况下,目标函数应该为{π|B(π)=z}中所有元素概率之和。 即: [图片] 在T=30,音素为[n,i,h,a,o]的情况下,共有C529≈120000条路径可以被压缩为[n,i,h,a,o]。 路径数目的计算公式为C音素个数T−1,量级大约为(T−1)音素个数。一段30秒包含50个汉字的语音,其可能的路径数目可以高达108,显然这么大的路径数目是无法直接计算的。因此CTC方法中借用了HMM中的向前向后算法来计算。

如何保护Android应用内的代码及文件?

提问2018-09-211.4K
人生的旅途
我曾经使用过腾讯云的乐固,感觉不错,把教程放出来: 我我们知道对于有过反编译经验的同学分分钟把正常的安卓程序源代码搞出来。一直也在寻找此类服务,之后发现腾讯云上有一个叫乐固的服务,支持反破解,反调试,反窃取,防篡改,防二次打包, 兼容2.x至 7.x 任何安卓系统, 兼容yunOS系统,重要的是免费的,支撑的团队响应速度也很及时,拖入专项问题讨论组,乐固团队人员帮你处理,这个太佩服,效率绝对的高。 前序:准备好之前已经签名好的产品apk。 1.首先找到云产品里找到应用乐固的服务。 📷 进入以后 选择好我们的apk文件。 📷 等到上传完毕以后: 📷 提交,系统就会自动进行加固。 📷 下载加固包。 📷 会提示: 📷 此时,如果没有下载签名工具,就先下载签名工具,如果已经下载好了 就点击 “继续下载加固包”。 📷 这是一个已经加固,但是没有签名的包。需要我们重新用我们自己的签名和密码重新打包签名一下。 2.包签名 首先下载好乐固提供的自助加固工具。 📷 正常情况下打开根目录的LeguPC.exe。 📷 (插曲:我的win8当时打不开,应该是权限问题,我直接找到\Bin\LeguPC.exe) 我们选择辅助工具: 📷 APK原包:就是我们下载的加固包 输出路径:选择一个目录然后,程序会把签名好的apk生成在这里 下面keystore、密码别名等就把我们生成签名的数据填写上 点击立即签名 完成加固。 📷 3.实践是检验真理的唯一标准 我不相信任何吹嘘,验证一下是否可行。 用工具尝试还原代码,已经失败了。 📷 目录结构是混淆后的了 📷 目前我们这边正式产品已经使用上,表现良好兼容性也很强。

【每周一练|No.1】解腾讯经典面试题,赢精美奖品,谁是解题小能手?

dingdeyang
private static ConcurrentHashMap<Integer, Boolean> task = new ConcurrentHashMap<>(); static { for (int i = 1; i < 101; i++) { task.put(i, false); } } public static void main(String[] args) { //检查id是否存在 Predicate<Integer> notExist = taskId -> taskId < 1 || taskId > 100; //标记任务已完成 Function<Integer, Integer> markCompleted = taskId -> { if (notExist.test(taskId)) { return -1; } //检查该任务是否已经完成,避免重复学习 task.replace(taskId, false, true); return 1; }; //检查任务是否完成 Function<Integer, Integer> checkStatus = taskId -> { if (notExist.test(taskId)) { return -1; } return task.get(taskId) ? 1 : 0; }; //标记任务已完成 System.out.println(markCompleted.apply(6)); //检查任务是否完成 System.out.println(checkStatus.apply(7)); System.out.println(checkStatus.apply(6)); }

2023-08-12:用go语言写算法。实验室需要配制一种溶液,现在研究员面前有n种该物质的溶液?

编辑2023-08-1259
运维开发王义杰回答已采纳
此问题可以通过动态规划解决。我们可以用一个数组来记录达到每个体积时的最大物质含量,然后逐步构建解。 package main import ( "fmt" ) func max(a, b int) int { if a > b { return a } return b } func main() { fmt.Print("请输入溶液种类数量n:") var n int fmt.Scan(&n) fmt.Print("请输入化学反应增加单位x:") var x int fmt.Scan(&x) fmt.Print("请输入需要达到的体积c:") var c int fmt.Scan(&c) v := make([]int, n) w := make([]int, n) fmt.Println("现在请依次输入每种溶液的体积和物质含量:") for i := 0; i < n; i++ { fmt.Printf("请输入第%d种溶液的体积v[%d]:", i+1, i) fmt.Scan(&v[i]) fmt.Printf("请输入第%d种溶液的物质含量w[%d]:", i+1, i) fmt.Scan(&w[i]) } // dp数组,用于存储每个体积的最大物质含量 dp := make([]int, c+1) // 遍历每种溶液 for i := 0; i < n; i++ { // 更新每个体积的物质含量 for j := v[i]; j <= c; j++ { dp[j] = max(dp[j], dp[j-v[i]]+w[i]) } } // 计算同体积合并后的物质含量 for i := 1; i <= c; i++ { dp[i] = max(dp[i], dp[i-1]+x) } fmt.Println("物质含量最多是:", dp[c]) } 可以通过控制台输入参数,首先输入溶液的种类数、化学反应增加的物质含量和所需的体积。然后输入每种溶液的体积和物质含量。最后程序会输出达到所需体积时的最大物质含量。

50.多媒体框架标准(MultimediaFramework)指的是(50)标准?

编辑2023-08-0968
一凡sir
D.MPEG-21

您好,您一直使用VSCode开发java么 我想小团队长期使用vscode 对比有什么弊端么?

编辑2023-02-03109
凡尘扰凡心
java和c++,差不多 但是vscode对于项目类的程序还是不太友好,本来就算一个前端编辑器甚至一个文本编辑器,配置环境门槛太高,不值得,java用idea不行吗,如果是学生直接申请一个包就行了,要是不是学生小团队用盗版也没啥;

VBA字串排列組合問題,如何排除重複的資料?

编辑2022-12-18126
用户10273407
具體來說想詢問的解法: https://imgur.com/a/lLpY8tT

为什么c++中数组定义的位置会引发错误?

编辑2022-11-29109
用户7420774
在函数里面不适合定义很大的临时数组变量。应该使用堆动态分配。栈大小有限,太大就报错了,所以要放到堆里,可以定义全局变量或动态分配。 函数内部(局部变量)禁止定义大数组,而应使用动态内存;如数组需传入函数应使用指针作为参数;就算数组不大但是如果函数嵌套很多的话也会发生segment error。 函数内是在栈分配内存,栈大小一般限制在1M到2M,函数外则是全局变量,在DATA段分配内存。 在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。

cos对象存储的时区问题?

编辑2022-11-10194
胖五斤
参考:https://cloud.tencent.com/document/product/436/54303

iOS端集成了pod 'TUIGroup',编译报错,请帮忙查看?

用户10236452
推测是Podfile里存在问题 解决办法是 1、如果是OC项目 需要使用use_modular_headers! 不能使用use_frameworks! :去掉use_frameworks! 2、如果是swift项目 需要使用use_frameworks!的话 那就在 工程的 build setting 设置下 OTHER_SWIFT_FLAGS -Xcc -Wno-error=non-modular-include-in-framework-module 之后重新Podupdate

在做图像处理时,如何提高识别算法的设计与效果的精度?

编辑2022-08-30160
用户9994334回答已采纳
图像分析中,图像质量的好坏直接影响识别算法的设计与效果的精度,因此在图像分析前,需要进行预处理。图像预处理,是将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。在图像分析中,对输入图像进行特征抽取、分割和匹配前所进行的处理。 图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。 预处理过程1.数字化2.几何变换3.归一化4.平滑5.复原6.增强

AI算法中比较常用的模型都有什么?

编辑2022-08-27139
三掌柜
楼主你好,AI算法中比较常用的模型有: 1、神经网络算法:人工神经网络系统是20世纪40年代后出现的。它是由众多的神经元可调的连接权值连接而成,具有大规模并行处理、分布式信息存储、良好的自组织自学习能力等特点。 2、BP神经网络算法:又称为误差反向传播算法,是人工神经网络中的一种监督式的学习算法。理论上可以逼近任意函数,基本的结构由非线性变化单元组成,具有很强的非线性映射能力。 3.决策树根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。 4、遗传算法:模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 5、粒子群算法:也称粒子群优化算法或鸟群觅食算法,是近年来开发的一种新的进化算法。从随机解出发,通过迭代寻找最优解。

用ocr识别文字表格后,格式内容很乱,有没有什么算法可恢复成原有的数据结构?

西门呀在吹雪
识别精度问题,无法修改,除非提供更清晰的文件重新识别

开发者社区已经一个多月不给成长值了,是bug?

卖女孩的火柴
建议工单问问
Hi~
今天想聊点什么呢?
近期活跃用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档