从零入手人工智能(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…...
图解 Python 编程(12) | 文件和编码方式
🌞欢迎来到Python 的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年6月9日&am…...
CSDN个人主页动态地图(前端/后端)
前段时间有人问我,关于CSDN个人主页动态地图的实现,我来解答一下。 这里要注意一下:使用CSDN的API需要遵循其开发者协议和使用规范,确保你的使用方式符合相关规定 前端部分: 创建一个HTML页面作为个人主页。在页面上放…...
GUI编程-01
组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 Java提供了丰富的图形用户界面(Graphics User Interface,GUI)的类库,基于这些类库可以编写窗口程序。 Java关于图形界面的类库主要放在…...
Linux网络-自定义协议、序列化和反序列化、网络计算服务器的实现和Windows端客户端
文章目录 前言一、自定义协议传结构体对象 序列化和反序列化什么是序列化?反序列化 二、计算器服务端(线程池版本)1.main.cc2.Socket.hpp3.protocol.hpp4.Calculator.hpp5.serverCal.hpp6.threadPool.hpp7.Task.hpp8. log.hpp 客户端Windows客…...
Hive知识体系保姆级教程
一. Hive概览 1.1 hive的简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 其本质是将SQL转换为MapReduce/Spark的任务进行运算,底层由HDFS来提供数据的存储,说白了h…...
三大网络简介
一、三大网是哪三大网 三大网络为电话网、电视广播网、互联网,如果这三大网络使用都是“ip分组交换”技术的话,他们将会被融合成为一个网络, 但是由于历史原因,他们使用了不同的通信技术,三大网各自拥有相当的独立性&a…...
Element-UI全面入门与实战技巧
本文详细介绍了Element-UI的安装、配置、组件使用、布局技巧、交互设计、表单处理、主题定制等内容,旨在帮助开发者快速掌握Element-UI,并能在实际项目中灵活应用。 文章目录 一、Element-UI概述与安装1.1 Element-UI简介1.2 环境搭建1.3 安装Element-UI…...
第103天: 权限提升-Linux 系统辅助项目脏牛Dirty内核漏洞SUIDGUID
项目下载地址 综合类探针: https://github.com/liamg/traitor 自动化提权: https://github.com/AlessandroZ/BeRoot 信息收集: https://github.com/rebootuser/LinEnum https://github.com/sleventyeleven/linuxprivchecker 漏洞探针…...
如何用群晖当异地组网服务器?
在当今信息化时代,远程通信成为了企业和个人之间不可或缺的一部分。特别是对于跨地区的通信需求,一个可靠的异地组网服务器是必不可少的。而群晖(Synology)作为一款功能强大的网络存储设备,可以被用作办公室或家庭的异…...
文件怎么去重?5个技巧,教你删除重复文件!
一般来说,在处理大量文件时,你可能会遇到重复的类似文件。这些文件占据了电脑上不必要的磁盘空间,导致系统性能下降。而这些文件可以是不同类型的,如照片、视频、音频、存档、文档等。正因如此,您需要通过文件去重来删…...
网站的二级目录是什么/汕头seo排名
1.安装依赖(内网环境 挂载光盘)本文链接原创: 我照着此文部署 yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 gli…...
建立网站最先进的互联网技术有哪些/最新新闻热点事件及评论
1.debug的启动,退出和常用指令。 用r命令修改寄存器AX中的内容 用debug的D查看内存中的内容 查看1000:9单元中的内容 用e命令修改从1000:0开始的10个单元的内容 用e命令将机器码写入内存 用u命令将内存单元中的内容翻译为汇编指令显示 使用t命…...
建设银行官网网站首页纪念币预约/深圳白帽优化
CONVERT_TZ(dt,from_tz,to_tz)转换datetime值dt,从 from_tz 由给定转到 to_tz 时区给出的时区,并返回的结果值。 如果参数无效该函数返回NULL。mysql> SELECT CONVERT_TZ(2004-01-01 12:00:00,GMT,MET);--------------------------------------------…...
广东两学一做考试网站/视频运营管理平台
JS中的数据类型 虽然JS是弱类型语言,JS的变量声明的时候并不需要指定数据类型,但是在赋值上每一个数据是由类型的。 值得注意的是ES6之后,又基于以下的6中类型之外添加了一种新的类型:symbol 学习数据类型我们还常用typeof运算符…...
活动手机网站开发/营销型网站特点
今天我们学习几个常用的Dockerfile指令,在 http://docs.docker.com/reference/builder/可以查看Dockerfile中能使用的全部指令的清单。 一、CMD指令 CMD指令用于指定一个容器启动时要运行的命令,这与RUN指令有点类似,但RUN指令是指定镜像被…...
宣城市住房和城乡建设委网站/短视频营销推广策略
Flex 是一个高效、免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器、桌面和操作系统。虽然只能使用 Flex 框架构建 Flex应用程序,但Adobe Flash Builder™(…...