1 总则 总则规定了一些大体原则,必须要作的、最需要注意的事项。也是面向目前我们的代码中亟需解决的一些问题: (1)头文件、源文件布局混乱,直接影响编译效率 (2)有编程规范,但遵守的很差 (3)过长函数 (4)大量重复代码 1.1 源文件 源文件原则: ● 函数行数尽量不要超过50行,超过50行的目前阶段并非严格禁止,但需要说明理由 ● 源文件长度尽量不要超过500行, 不同子功能、子模块的代码
转载 2023-12-24 11:59:41
41阅读
前言这篇博客旨在介绍下最近在通信中经常用到的 ADMM 算法。 算法的全称为 Alternating Direction Method of Multipliers, 中文直译为: 交替方向乘子法。 本文的参考文献为 Boyd 的经典著作: Distributed Optimization and Statistical Learning via the Alternating Direction
# ADMM算法及其Python实现 ## 引言 交替方向乘子法(ADMM, Alternating Direction Method of Multipliers)是一种用于解决大规模优化问题的方法。ADMM将复杂的优化任务分解为更简单的子任务。它广泛应用于机器学习、统计学和信号处理等领域,尤其适合并行计算。 ## ADMM算法原理 ADMM的基本思想是将一个全局优化问题分解为多个局部优
原创 9月前
491阅读
分布式计算、统计学习与ADMM算法 在整理旧电脑时,才发现13年下半年电脑里有不少残文。老师说,东西搁下了再拿起来花费的时间和之前可能差不多。我一眼看过去这篇关于分布式计算的文章,貌似还真的没有了当时理解的深度和感觉。当时还想利用ADMM算法,把统计中常见的带惩罚的高维问题在此框架下用R重写一下,但是中途多种事情一耽搁,就早已抛之脑后。看来任何事情,真的还是需要坚持,哪怕拨点时间都是好的
前言1、重复元素判定以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素。(文末有读者福利)def all_unique(lst): return len(lst)== len(set(lst)) x = [1,1,2,2,3,2,3,4,5,6] y = [1,2,3,4,5] all_unique(x) # False all_unique(y) # Tru
今天分享13个Python代码技巧。来,数一数你知道几个。最后大家比一比!1,2,3,开始!1. 衡量代码执行时间。作为程序员,一定离不开两个字:性能。工作中经常要去解决性能的问题:为什么程序执行的这么慢?set的执行速度真的比list快吗?用time模块可以计算代码执行时间:import timestartTime = time.time()# 要衡量的代码for i in range(1000
问题来源在读论文的时候,遇到了ADMM(交替方向乘子法)算法,不明所以,于是查了一下,大概是一个凸优化算法,下面大概讲一下其原理和过程。简介交替方向乘子法(ADMM)是一种求解具有可分离的凸优化问题的重要方法,由于处理速度快,收敛性能好,ADMM算法在统计学习、机器学习等领域有着广泛应用。文献来源Boyd S, Parikh N, Chu E, et al. Distributed optimiz
# 用Python实现量化ADMM算法的指南 ADMM(Alternating Direction Method of Multipliers)是一种有效的优化算法,广泛应用于机器学习和信号处理等领域。本文将带您逐步实现量化ADMM算法的Python代码。我们将通过具体的流程和代码示例,让您更好地理解这个算法。 ## 一、实现流程概述 实现量化ADMM算法的过程可以分为以下几个步骤: |
原创 2024-08-31 03:57:13
385阅读
1.EM算法是什么EM算法可以用于有监督学习,也可以用于无监督学习。这个算法是根据观测结果求得对含有隐变量的模型的参数的估计。包含E步骤和M步,E步是求期望,M步是求极大似然估计,极大参数估计是对模型参数估计的一种方法。一个典型的应用EM算法进行参数估计的例子就是敏感问题的调查,我们想要得到人群中吸烟人数的比例,可以设置这样一个问卷问题1:你的手机尾号是偶数吗?若是,回答问题2,不是,则回答问题3
  ADMM(Alternating Direction Method of Multipliers,交替方向乘子法)是一种优化算法,主要用于解决分布式、大规模和非光滑的凸优化问题。ADMM通过将原始问题分解为多个易于处理的子问题来实现优化。它结合了两种经典优化方法:梯度下降法(gradient descent)和拉格朗日乘子法(Lagrangian multiplier method)。ADMM
前言编写干净的,Python式的代码就是要尽可能地使其易于理解,但又要简明扼要。以下是有关Python重构的系列文章的第三部分,第一部分见此,第二部分见此。本系列的重点是为什么这样做是好的做法,而不仅仅是教你如何做。1. 在条件中合并重复的代码块编码时,我们应时刻谨记不要使用重复的代码,code review时尽量找到重复代码进行重构。如果在if..elif链中有相同的代码,如下:def proc
转载 2023-08-31 10:25:56
88阅读
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。编写干净的,Python式的代码就是要尽可能地使其易于理解,但又要简明扼要。本系列的重点是为什么这样做是好的做法,而不仅仅是教你如何做。1. 将for循环转为list/set/dictionary生成式/推导式(List Comprehensions)编码的时候我们经常要创建集合。在大多数语言中
转载 2023-08-28 20:06:24
110阅读
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。使用 str.join() 而不是 for 循环在 Python 中连接字符串最直接的方法是使用+ 运算符:hat_description = hat.colour + hat.type当您将少量字符串连接在一起时,这非常好(尽管 f 字符串是处理更复杂字符串的最佳选择)。 当它们用于
转载 2024-01-10 18:09:55
62阅读
作者:江湖十年通过前几章的学习,我们完成了 Todo List 程序的 todo 管理部分,实现了对 todo 的增、删、改、查基本操作,这也是几乎所有 Web 程序都具备的功能。我们当然可以按照目前的思路继续来实现用户管理部分,在 models.py 中编写用户相关的模型,在 templates/ 目录下新建用户相关 HTML,在 controllers.py 中编写用户相关的视图函数。但是,随
转载 2024-06-12 14:12:44
32阅读
编写干净的,Python式的代码就是要尽可能地使其易于理解,但又要简明扼要。以下是有关Python重构的系列文章的第一部分,其它部分会继续推出。本系列的重点是为什么这样做是好的做法,而不仅仅是教你如何做。
1. 合并嵌套的 if 条件太多的嵌套会使代码难以理解,这在 Python 中尤为如此,因为 Python 没有括号来帮助区隔不同的嵌套级别。阅读深度嵌套的代码容易让人烦躁,因为你必须理清哪些条件属于哪一级。因此,我们应尽可能减少嵌套,如果两个条件可以用 and 合在一起,会比嵌套更易读。合并之前:if a:if b:return c合并后:if a and b:return c2. 将重复的代码
Martin Fowler的著作《Refactoring: Improving the Design of Existing Code》1.Extract Method(提取函数)样例代码:public void PrintOwing(double amount) { PrintBanner(); //
转载 2024-01-04 12:30:38
83阅读
# Python代码重构指南 代码重构(Code Refactoring)是提升代码质量的重要环节,通过重构,开发者可以清晰地改进代码结构,使其更易于维护和扩展。本文将为刚入行的小白提供一个系统的代码重构流程,示例代码,并用可视化工具展示,以便更好地理解。 ## 代码重构流程 我们将重构流程分为以下几个步骤: | 步骤 | 描述
原创 2024-09-08 06:42:15
50阅读
在撸码过程中,总有很多代码需要重构,码一个问候用户的小例子,加深对代码重构的印象。原始代码:1 import json 2 3 filename = 'username.json' #定义文件名 4 5 try: 6 with open(filename) as file_object: 7 username = json.load(file_object)
转载 2023-06-13 20:41:15
72阅读
有时候回头看自己之前写的代码,觉得真的是不堪入目啊,哈哈哈,各种if嵌套,for循环一层又一层,代码过于冗长,代码看起来既不美观,又没啥可读性,甚至还影响运行速度。所以对于编写简洁、易于理解、可读性好的程序还是很有必要的,接下来总结一些常见的重构方法,希望借此自己总结一下经验,也顺便给大家分享一下!一、遇到多个if条件判断太多的嵌套会使代码难以理解,在Python中尤其如此,因为Python中没有
转载 2023-07-07 01:21:11
192阅读
  • 1
  • 2
  • 3
  • 4
  • 5