从零入手人工智能(2)——搭建开发环境
1.前言
作为一名单片机工程师,想要转型到人工智能开发领域的道路确实充满了挑战与未知。记得当我刚开始这段旅程时,心中充满了迷茫和困惑。面对全新的领域,我既不清楚如何入手,也不知道能用人工智能干什么。正是这些迷茫和困惑,激发了我不断探索和学习的动力。经过一段时间的摸索和实践,我逐渐扫清了障碍,找到了入门的钥匙。我开始明白如何去学习,如何去实践,如何去深挖每一个核心知识点。
我撰写了这个系列的文章,希望能将这段经历和学习的心得分享给更多想要入门人工智能的朋友们。这些文章将详细记录我学习人工智能的每一个步骤和心得,希望通过我的经验,为大家提供一份实用的入门指南,帮助大家更快地融入这个充满机遇和挑战的领域。
“万事开头难”是一句广为流传的谚语,意指无论做任何事情,最初的时候总是最困难的。但是!“天下事有难易乎?为之,则难者亦易矣”
2.编程环境
人工智能相关的软件开发和单片机软件开发不同,单片机软件开发只需要安装一个集成开发软件就可以了,例如KEIL或者IAR。而人工智能软件开发则需要安装编程软件,配置编程环境,同时还要根据实际情况添加一些软件工具。因此想要入门人工智能的第一个拦路虎就是编程环境的搭建。
笔者是一名单片机工程师,人工智能相关的软件开发与单片机相关的软件开发之间存在显著的差异。单片机软件开发通常较为直接,主要围绕一个集成开发环境(IDE)进行,如KEIL或IAR,这些软件为开发者提供了编写、编译和调试单片机程序的一站式服务。然而,人工智能软件开发则是一项更为复杂且多层次的任务。
人工智能软件的开发不仅要求安装专业的编程软件,如Python的IDLE、Jupyter Notebook等,还需要根据项目的需求,配置相应的编程环境,如安装各种库和框架,如TensorFlow、PyTorch、OpenAI等。这些库和框架为开发者提供了构建、训练和部署机器学习模型所需的各种工具和算法。除了编程软件和环境的配置,人工智能软件开发还常常需要添加一些辅助的软件工具,如数据可视化工具(如Matplotlib、Seaborn)、模型优化工具(如TensorBoard)等。
因此,对于想要入门人工智能领域的开发者来说,搭建一个合适的编程环境无疑是我们面临的首要挑战。在搭建编程环境的过程中,我们可能会遇到各种问题和挑战。例如,软件安装失败、环境配置错误、版本冲突等。这些问题需要开发者具备耐心和毅力,通过查阅文档、搜索网络、寻求帮助等方式逐一解决。
我们的编程环境如下:
python 3.12.2
ancand 2.5.2
jupyter 7.0.8
pandas 2.2.1
numpy 1.26.4
keras 3.3.3
3.编程环境搭建
编程环境的核心是一个安装有人工智能相关工具包的Python编程环境。构建开发环境主要有以下两个主要步骤:
步骤1:安装Python,这是整个编程环境的基础。Python是一种高级编程语言,其简洁的语法、强大的库支持和广泛的应用领域使其成为AI开发的理想选择。
步骤2:安装一系列与人工智能开发紧密相关的工具包,也称为库或框架。这些工具包提供了丰富的算法、模型和实用工具,使我们能够更高效地开发AI应用程序。一些常见的AI工具包包括NumPy(用于数值计算)、Pandas(用于数据处理和分析)、Matplotlib(用于数据可视化)、TensorFlow(用于深度学习)和scikit-learn(用于机器学习)。
3.1安装pythoh编程环境
安装pythoh
下载python安装包。进入官网下载与自己电脑系统相匹配的python安装包。
python官网:https://www.python.org
安装python。点击python安装包开始安装,安装时需要勾选Add python to PATH,其他步骤使用默认选项直接“下一步”。
测试python。完成安装后打开命令行工具(WIN+R 输入cmd),在命令行工具输入
python -V
如果python正确安装,命令行工具会返回python的版本号。
编程环境搭建情况:已经完成30%的搭建工作,目前编程环境已经支持python编程。
安装Anaconda
Anaconda是一个开源的Python发行版本,它不仅仅包含了Python解释器,还集成了大量的科学计算包、库、管理工具等,为数据科学、机器学习等领域的科研人员和工程师提供了便捷的工作环境。ANACONDA有以下四大作用:
1、工具包管理。ANACONDA自带了Conda这个强大的包管理工具,可以方便地安装、更新、卸载Python包及其依赖项。
2、虚拟环境管理。ANACONDA可以轻松创建和管理多个Python虚拟环境,每个环境可以有不同的Python版本和包依赖,从而满足不同的项目需求。
3、数据科学工具。ANACONDA自带了许多常用的数据科学工具,如Jupyter
Notebook、Spyder等,这些工具为数据分析和可视化提供了强大的支持。
4、丰富的工具包。ANACONDA包含了超过180多个科学包,如NumPy、Pandas等,这些包在数据清洗、统计分析、机器学习等方面具有广泛的应用。
下载Anaconda安装包。进入官网下载与自己电脑系统相匹配的Anaconda安装包。
Anaconda官网:https://www.anaconda.com
安装Anaconda。点击Anaconda安装包开始安装,使用默认选择进行安装。
创建一个虚拟环境。打开Anaconda点击Environments,点击base选择Open Terminal。
在终端中输入指令建立自定义环境,env_ai 为自定义环境名,运行该命令后在随后输入的提示符中输入 y
conda create -n env_ai
在终端中输入激活自定义环境
conda activate anv_ai
编程环境搭建情况:已经完成50%的搭建工作,目前编程环境是一个支持python编程,支持便捷安装多种应用库和工具,支持创建管理多个python虚拟环境。
安装Jupyter Notebook
Jupyter Notebook是一个功能强大的交互式笔记本,它为用户提供了在Web浏览器中编写、执行和共享文档的能力。这些文档可以包含代码、可视化和文本,可以为开发者等提供了极大的便利。
安装Jupyter Notebook。打开Anaconda,点击home ,找到jupyter,点击install完成安装。
启动Jupyter Notebook。打开Anaconda点击Environments,点击env_ai选择Open with jupyter notebook
浏览器自动打开了juoyter ,我们可以选择new建立一个文件夹或者一个Notebook
在jupyter中新建一个Notebook文件,打开Notebook文件,我们可以在Notebook中写文档,写代码,调试运行代码。
编程环境搭建情况:已经完成70%的搭建工作,目前编程环境是一个支持python编程,支持便捷安装多种应用库和工具,支持创建管理多个python虚拟环境,同时还可以灵活便捷的编辑和调试代码。
3.2安装工具包
到这里一步可以说我们的环境基本搭建好了,接下来我们需要安装一些和人工智能相关的工具包,如NumPy、Pandas、scikit-learn、keras等,这些包在数据清洗、统计分析、机器学习等方面具有广泛的应用。工具包相当于一个库文件,我们安装了工具包就可以调用其中的各种函数方法。
打开Anaconda点击Environments,点击env_ai选择Open Terminal。我们在终端中用pip指令来安装工具包。例如我们安装pandas 就在终端中输入
pip install pandas
这种直接安装的方式默认是用的是国外的下载源,下载速度很慢,经常会出现下载失败的情况,因此我们使用国内的下载源进行下载,大家可以在网上搜素“pip国内源",笔者使用的是清华大学下载源,因此我们将安装pandas安装指令改为如下形式:
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/
这样就和迅速的安装好了pandas工具包。在这里我们直接将后续可能用到的工具包一次性安装完,安装指令如下:
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install Certificates -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install keras -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/
编程环境搭建情况:已经完成100%的搭建工作,目前编程环境是一个支持python编程,支持便捷安装多种应用库和工具,支持创建管理多个python虚拟环境,同时还可以灵活便捷的编辑和调试代码,此时我们的编程环境还支持各种人工智能算法的工具包。
大功告成!至此我们的编程环境已经搭建好了!人工智能我来了!
4.编写第一个程序
打开在jupyter中新建一个Notebook文件,我们先建立一个Markdown的cell ,写一个程序说明。
建立一个Code的cell ,写一个python程序并运行,代码和运行结果如下:
from matplotlib import pyplot as plt
x = [1,2,3,4,5,6]
y = [11,12,13,14,15,16]
plt.figure(figsize = (2,2))
plt.scatter(x,y)
plt.show()
相关文章:

从零入手人工智能(2)——搭建开发环境
1.前言 作为一名单片机工程师,想要转型到人工智能开发领域的道路确实充满了挑战与未知。记得当我刚开始这段旅程时,心中充满了迷茫和困惑。面对全新的领域,我既不清楚如何入手,也不知道能用人工智能干什么。正是这些迷茫和困惑&a…...

Web前端指南
前言 前端开发员主要负责网站的设计、外观和感觉。他们设计引人入胜的在线用户体验,激发用户兴趣,鼓励用户重复访问。他们与设计师密切合作,使网站美观、实用、快捷。 如果您喜欢创造性思维、打造更好的体验并对视觉设计感兴趣,这将是您的理想职业道路。 探讨前端、后端以…...

AI菜鸟向前飞 — LangChain系列之十七 - 剖析AgentExecutor
AgentExecutor 顾名思义,Agent执行器,本篇先简单看看LangChain是如何实现的。 先回顾 AI菜鸟向前飞 — LangChain系列之十四 - Agent系列:从现象看机制(上篇) AI菜鸟向前飞 — LangChain系列之十五 - Agent系列&#…...
nodejs 第三方库 exiftool-vendored
exiftool-vendored 是一款可以帮助你快捷修改图片信息的第三方库。如果你想要批量修改图片信息的话,那么它是一个不错的选择。 1.导入第三方库 在控制台中执行下面代码即可。 npm install exiftool-vendored --save2.获取信息 这里给出例子。 const { exiftool …...

docker部署redis实践
1.拉取redis镜像 # 拉取镜像 sudo docker pull redis2.创建映射持久化目录 # 创建目录 sudo mkdir -p $PWD/redis/{conf,data}3. 运行redis 容器,查看当前redis 版本号 # 运行 sudo docker run --name redis -d -p 6379:6379 redis # 查看版本号 sudo docker ex…...
Web前端学习之路:深入探索学习时长与技能进阶的奥秘
Web前端学习之路:深入探索学习时长与技能进阶的奥秘 在数字化时代,Web前端技术成为了连接用户与互联网世界的桥梁。对于初学者来说,学习Web前端究竟需要多久,以及如何高效掌握相关技能,一直是困扰他们的难题。本文将从…...
如何不用命令创建用户
都有哪些操作: 1、在/etc/passwd添加一行 2、在/etc/shadow添加一行 3、在/etc/group添加一行 4、创建用户家目录 5、创建用户邮件文件 例如: 创建用户jerry 要求: uid:777 主组:hadoop(800)…...
基于Python实现可视化分析中国500强排行榜数据的设计与实现
基于Python实现可视化分析中国500强排行榜数据的设计与实现 “Design and Implementation of Visual Analysis for China’s Top 500 Companies Ranking Data using Python” 完整下载链接:基于Python实现可视化分析中国500强排行榜数据的设计与实现 文章目录 基于Python实现…...

VUE3 学习笔记(13):VUE3 下的Element-Plus基本使用
UI是页面的门面,一个好的UI自然令人赏心悦目;国人团队开发的ElementUI在众多UI中较为常见,因此通过介绍它的使用让大家更好的了解第三方UI的使用。 安装 Npm install element-plus --save 或 Cnpm install element-plus --save 配置 全局配置…...
MySql数据库安全加固
设置密码复杂度策略 查看密码策略 SHOW VARIABLES LIKE validate_password%; 设置密码策略 INSTALL PLUGIN validate_password SONAME validate_password.so; 设置登陆失败策略 安装插件(谨慎操作,可能会导致数据库卡死) install plug…...

Nginx(title小图标)修改方法
本章主要讲述Nginx如何上传网站图标。 操作系统: CentOS Stream 9 首先我们bing搜索ico网站图标在线设计,找到喜欢的设计分格并下载。 是一个压缩包 然后我们上传到nginx解压 [rootlocalhost html]# rz[rootlocalhost html]# unzip favicon_logosc.z…...

iOS 17.5中的一个漏洞
i0S 17.5中的一个漏洞 iOS 17.5中的一个漏洞会使已刚除的照片重新出现,并目此问题似乎会影响甚至已擦除并出售给他人的 iPhone 和 iPad. 在2023年9月,一位Reddit用户根据Apple的指南擦除了他的iPad,并将其卖给了一位朋友。然而,这…...

如何在 iPhone 上恢复已删除的短信
本文介绍如何检索已删除的短信和 iMessage 以及恢复丢失的消息。说明适用于 iOS 17 及更高版本。 如何在 iOS 17及更高版本中恢复文本 恢复已删除短信的最简单方法是使用 iOS 17。从删除短信到恢复它有 30 到 40 天的时间。 在“信息”的对话屏幕中,选择“过滤器”…...
矩阵练习1
73.矩阵置零 这道题相对简单。 首先我们需要标记需要置零的行和列,可以在遍历矩阵中的元素遇到0,则将其行首和列首元素置为0。在此过程中首行、首列会受影响,因此先用两个变量记录首行、首列是否需要被置0,接着遍历非首行、非首…...

【C++ | 拷贝赋值运算符函数】一文了解C++的 拷贝赋值运算符函数
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-09 1…...
Linux网络安全
文章目录 一、网络安全概述二、常用服务端口三、 ping命令的使用3.1、ping命令的简单概述3.2、ping命令的使用 四、资源限制4.1、查看系统资源限制4.2、临时修改资源限制4.3、永久修改资源限制 五、网络安全服务工具介绍5.1、ClamAV5.2、Nmap5.3、Wireshark5.4、Netcat5.5、Sno…...

Django 视图类
在Django框架中,视图类(Class-based views,简称CBVs)提供了一个面向对象的方式来定义视图。这种方式可以让你通过创建类来组织视图逻辑,而不是使用基于函数的视图(Function-based views,简称FBV…...

【Java面试】十七、并发篇(上)
文章目录 1、synchronized关键字的底层原理:Monitor2、synchronized相关2.1 为什么说synchronized是重量级锁2.2 synchronized锁升级之偏向锁2.3 synchronized锁升级之轻量级锁 3、Java内存模型JMM4、CAS4.1 CAS流程4.2 CAS底层实现 5、volatile关键字的理解5.1 可见…...

七天进阶elasticsearch[one]
elasticSearch 概述 Elasticsearch是一个近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是一秒) 集群 一个集群就是由一个或多个节点组织在一起, 它们共同持有你全部的数据&#x…...

全新抖音快手小红书视频解析去水印系统网站源码
这个系统支持几十种平台,包括抖音、快手小红书以及其他热门社交媒体平台。它可以帮助轻松地下载这些平台上的任何视频,并去除其中的水印,让你可以自由地保存和分享这些视频。 使用方法: 上传压缩包解压,网站信息在inc…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...