karb0n

Chen SY.
第 39 位会员
注册于 2020-05-04 19:27:42
活跃于 2020-12-02 18:05:52


突然发现,我发的帖子全是软件安装方法
最近话题
最新评论
  • python 环境下安装 numpy at 2020-11-19 17:45:21

    推荐一个更方便的方法,不安装裸 Python,安装 Anaconda,然后在 Anaconda Prompt 里边输入:

    pip install numpy

    或者

    conda install numpy

    即可。pip 或者 conda (都是包管理器)会自动帮你上网下载安装包及必要依赖包的安装包,然后自动完成安装。


    如果使用的是裸 Python 的话,在命令行里直接输入

    pip install numpy

    也是可以的,大多数情况下不必去人工下载 whl 安装包。

  • TensorFlow Object Detection API 的安装方法 at 2020-08-24 02:24:00

    @MiroslavDirk
    ModuleNotFoundError: No module named 'nets' 可能的原因是,没有成功把 researchresearch\slim 两个目录添加进环境变量,参考上文第2节的后半部分有说明。
    运行 setup.py 有没有提示我忘记了,就是运行完成后输入 conda list 能够看到列表里边有 object-detection这样一个包,如下图。
    file
    如果第6节的内容能够成功运行完,且确实看到了 OK 的提示,就说明基本是安装成功了。

  • 用 CDK 打开.c 文件发生闪退 at 2020-07-21 17:14:16

    .c 文件是否位于一个包含中文或特殊符号的路径?
    把文件移至不含中文或特殊符号的路径试试看。

  • win10 系统下 vscode 搭建 C 语言开发环境 at 2020-05-30 00:35:25

    好巧,前几天刚好配置了这个环境。
    用 VS Code 调试的话可以配置下 gdb,然后就可以用 VS Code 自带的那些按钮来调试了。

  • python 编程练习——旅行售货员问题 (Traveling Salesman Problem,TSP) at 2020-05-19 23:58:20

    回溯法求解旅行商问题

    回溯法和最近邻法的区别是,回溯法可以求得全局最优解,而最近邻法求得的是近似优解。
    不过,由于回溯法的时间复杂度为O(n²),所以城市数量非常多时仍然不太适用。
    代码:

    # -*- coding: utf-8 -*-
    
    # 回溯法求解旅行商问题
    class TSP:
        def __init__(self, matrix, names):
            matrix.append([0]*len(matrix))
            matrix.insert(0, [0]*len(matrix))
            for i in range(len(matrix)):
                matrix[i].insert(0, 0)
                matrix[i].append(0)
            self.matrix = matrix
            self.names = names
            self.num = len(names)  # 城市个数
            self.temp_path = [i for i in range(0, self.num+1)]  # 当前路径
            self.temp_len = 0  # 当前路径长度
            self.best_path = [0] * (self.num+1)  # 最短路径
            self.best_len = 99999999  # 最短路径的长度
    
        def __backtrack(self, node):
            if node > self.num:
                v = self.matrix[self.temp_path[self.num]][1]
                if (v != 0) and (v + self.temp_len < self.best_len):
                    self.best_len = v + self.temp_len
                    for i in range(1, self.num + 1):
                        self.best_path[i] = self.temp_path[i]
            else:
                for i in range(node, self.num + 1):
                    v = self.matrix[self.temp_path[node-1]][self.temp_path[i]]
                    if (v != 0) and (v + self.temp_len < self.best_len):
                        self.temp_path[node], self.temp_path[i] = self.temp_path[i], self.   temp_path[node]
                        self.temp_len += self.matrix[self.temp_path[node-1]][self.temp_path   [node]]
                        self.__backtrack(node + 1)
                        self.temp_len -= self.matrix[self.temp_path[node-1]][self.temp_path   [node]]
                        self.temp_path[node], self.temp_path[i] = self.temp_path[i], self.   temp_path[node]
            return
    
        def solve(self):
    
            self.__backtrack(2)
    
            path_str = ""
            for i in range(1, self.num+1):
                path_str += self.names[self.best_path[i]]
            path_str += self.names[1]
    
            return path_str, self.best_len
    
    if __name__ == '__main__':
        # 记录两个城市之间距离的邻接矩阵
        distance = [[0, 8943, 5582, 344, 8164, 9588],
                    [8943, 0, 3363, 9212, 12475, 11319],
                    [5582, 3363, 0, 5850, 11012, 10872],
                    [344, 9212, 5850, 0, 8238, 9739],
                    [8164, 12475, 11012, 8238, 0, 2103],
                    [9588, 11319, 10872, 9739, 2103, 0]]
        # 城市名字
        city_name = {1: 'L', 2: 'M', 3: 'N', 4: 'P', 5: 'B', 6: 'T'}
        # 求解
        tsp = TSP(distance, city_name)
        shortest_path, shortest_length = tsp.solve()
        # 显示结果
        print("最短环为%s,其总长度为%d" % (shortest_path, shortest_length))

    计算结果:

    最短环为LNMTBPL,其总长度为30949
  • python 编程练习——旅行售货员问题 (Traveling Salesman Problem,TSP) at 2020-05-11 02:20:19

    这是个很经典的算法题!可以练习好多种算法 :laughing:

  • 嵌入式系统入门请教~ at 2020-05-05 02:41:39

    单片机/嵌入式的话,我觉得 Arduino 是一个非常适合入门用的平台,上手容易,正反馈强。学习 Arduino 的过程中,可以在尽量少涉及电子、计算机原理层面的知识,去学习和了解开发嵌入式应用的流程,以及了解程序编写、器件选型、架构设计等的大致流程。


    在仅考虑嵌入式软件开发的工程实践层面,Arduino 玩得熟了之后,可以把方向分为以下三种,在其中去选一个或多个去学习:

    • 裸机:就是没有操作系统的,通常大家所说的“单片机”是指这一类,Arduino 就可以归类为这一类。在实际应用中,裸机一般用于实现较为简单的逻辑,或者非常注意低功耗的场景,例如空调遥控器。
      在这一方向上可以尝试学习 51MSP430 等平台。
    • 搭载实时操作系统的嵌入式平台:μC/OS-II、FreeRTOS、RT-Thread 等操作系统属于实时操作系统 (RTOS),相比于裸机,加入RTOS可以使处理器更好地处理多任务。例如通过网络遥控的空调,它的主控制器在处理空调自身运作的同时,还需要处理与服务器的上下行通信来接收用户指令或者告知用户运行状态,这就对多任务管理有一定的要求。
      在这一方向上可以尝试用 STM32MSP430 等平台入手,STM32 的资料最丰富。
    • 搭载非实时操作系统的嵌入式平台:GNU/Linux、Android、Windows 等操作系统属于非实时操作系统,在嵌入式平台上一般 GNU/Linux 比较常见。在实际应用中,这一类平台通常用于实现任务较多但是对实时性没有较强要求的应用,例如可以遥控空调的车载影音娱乐系统。
      这一方向可以尝试用树莓派等平台入门,可以去学习 GNU/Linux 等系统下的软件开发,以及 GNU/Linux 内核层面的操作和修改。

    以上三个方向之间其实并没有明确界线,裸机可以套上操作系统,也可以把操作系统给去掉只剩裸机。前两个方向软件和硬件都涉及,第三个方向更侧重于软件层面。
    当然,后面的学习过程中,其实不能仅学习各种嵌入式平台的应用,电子、计算机原理层面的理论/实践知识也是需要视题主感兴趣的领域去加强学习的,具体自己偏向于哪个领域可以在后面的不断摸索中慢慢了解到。


    题主还提到了物联网,个人认为物联网可能不能算作一个路线,因为物联网这个概念其实涉及到很多很多学科,作为一个个人,时间有限,只能选择其中的部分领域去深入学习,例如,物联网可以分为以下几个领域:

    • 天线设计:物联网设备通常需要通过天线收发电磁波来实现信息传输,设计天线可能要考虑到电动力学等学科,具体我并不是很了解。
    • 电路(通信层面):处理天线收发的数据需要有一块电路来实现,这块电路可以把从天线收来的信息处理成主处理器能理解的数据格式,也可以把主处理器想发送的数据处理成能让天线发送出去的格式,这块电路的核心部分通常是一个芯片,例如基带芯片、调制解调芯片等。设计通信电路需要学习的部分学科有:电路分析、模电、数电、信号与系统、通信电子线路、通信原理、信息论与编码、PCB设计、IC设计等。
    • 嵌入式硬件:物联网设备总有个自己的功能,例如获取环境温度、控制空调开关等。另外,电路上的各种元件可能也需要某些特殊的信号才能激活,例如很多芯片需要有个时钟信号之类的才能启动。这一领域可以被称为嵌入式硬件,这个领域就侧重于电路板的设计了,需要学习的部分学科有电路分析、模电、数电、PCB设计等。
    • 嵌入式软件:就是前一节中讨论的那些东西,理论层面推荐学习数据结构、计算机组成原理、操作系统原理、计算机网络等计算机专业的基础课,如果做的偏向于运动控制,就学信号与系统、数字信号处理、自动控制原理等自动化专业课程。实践层面除了嵌入式平台本身的使用方法外,可能需要学习的内容还有C/C++、Python、GNU/Linux、网络编程等。
    • 软件(网络或服务器层面):这一领域就基本上不涉及硬件了,可能会涉及到物联网云服务平台的搭建之类的,可能需要学习的内容有GNU/Linux、Java、C/C++、Python、PHP、Go、网络编程、数据库、网络安全、运维等。
    • 视觉处理、语音处理、自然语言处理等:这部分其实是一些高层的数据分析和处理了,虽然物联网里也会有应用,但通常可能不会被归类为物联网技术,涉及到的数学知识会比较多,每个方向都有各自需要的内容去学习。

    物联网包含的学科比较多,以上可能也没有全列出来,题主可以在后期的慢慢摸索中找到自己更感兴趣或者更擅长的方向去深入学习。


    总结一下,在学习过程中要注意的就是两点:

    • 一个是实践和理论都要注意学习,实践能力决定发展下限,理论能力决定发展上限。
    • 另一个是多去尝试,本科阶段有很多的试错机会,可以多尝试尝试,找到感兴趣的领域就去深入学习(这里的感兴趣是指,废寝忘食地去学习仍然能源源不断地获得快乐)。当然也要注意一点,要有侧重的方向,不能样样都沾点边却样样都不精。

    祝题主学习愉快!

    // 翻上去读了读题目,我感觉我好像写跑题了...