Python中的人工智能框架与实例

在人工智能(AI)领域,Python因其简洁的语法、丰富的库和强大的社区支持,成为了最受欢迎的编程语言之一。本文将详细介绍Python中的人工智能框架,并通过具体实例展示如何使用这些框架来实现不同的人工智能应用。
一、Python中的人工智能框架
Python中的人工智能框架主要分为以下几类:
- 机器学习框架 :如Scikit-learn、TensorFlow、PyTorch等,用于构建和训练机器学习模型。
- 自然语言处理(NLP)库 :如NLTK、SpaCy、Gensim等,用于处理和分析文本数据。
- 深度学习框架 :TensorFlow、PyTorch等,专注于构建和训练深度学习模型。
二、Scikit-learn:机器学习框架
Scikit-learn是一个开源的Python机器学习库,它提供了大量的算法和工具,用于数据挖掘和数据分析。Scikit-learn的设计哲学是简单、一致和可扩展,使得开发人员可以快速构建和部署机器学习模型。
实例:使用Scikit-learn进行鸢尾花数据集分类
以下是使用Scikit-learn对鸢尾花(Iris)数据集进行分类的示例代码:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, confusion_matrix # 加载数据
iris = load_iris()
X = iris.data
y = iris.target # 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test) # 创建KNN分类器
knn = KNeighborsClassifier(n_neighbors=3) # 训练模型
knn.fit(X_train, y_train) # 预测测试集
y_pred = knn.predict(X_test) # 输出分类报告和混淆矩阵
print(classification_report(y_test, y_pred))
print(confusion_matrix(y_test, y_pred))
在这个例子中,我们首先加载了鸢尾花数据集,并将其划分为训练集和测试集。然后,我们对数据进行了标准化处理,并创建了一个KNN分类器。最后,我们训练了模型,并在测试集上进行了预测,输出了分类报告和混淆矩阵。
三、TensorFlow与PyTorch:深度学习框架
TensorFlow和PyTorch是目前最流行的两个深度学习框架,它们提供了丰富的API和高效的计算能力,支持构建和训练复杂的深度学习模型。
实例:使用TensorFlow构建简单的神经网络
以下是使用TensorFlow构建并训练一个简单神经网络,用于手写数字识别(MNIST数据集)的示例代码:
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical # 加载数据
(train_images, train_labels), (test_images, test_labels) = mnist.load_data() # 数据预处理
train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255
test_images = test_images.reshape((10000, 28, 28, 1)).astype('float32') / 255 train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels) # 构建模型
model = models.Sequential([ layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, (3, 3), activation='relu'), layers.Flatten(), layers.Dense(64, activation='relu'), layers.Dense(10, activation='softmax')
])
模型编译与训练
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型
model.fit(train_images, train_labels, epochs=5, batch_size=64) # 评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('nTest accuracy:', test_acc) # 预测
predictions = model.predict(test_images)
predicted_classes = tf.argmax(predictions, axis=1) # 显示一些预测结果
import matplotlib.pyplot as plt def plot_image(i, predictions_array, true_label, img): true_label, img = true_label[i], img[i, :, :, 0] plt.grid(False) plt.xticks([]) plt.yticks([]) plt.imshow(img, cmap=plt.cm.binary) predicted_label = np.argmax(predictions_array) if predicted_label == true_label: color = 'blue' else: color = 'red' plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label], 100*np.max(predictions_array), class_names[true_label]), color=color) # 获取类别名称
class_names = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] # 显示第一张图片及其预测标签
i = 0
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.show()
在这个例子中,我们首先通过调整输入数据的形状和类型,将其预处理为适合神经网络输入的格式。然后,我们构建了一个包含卷积层、池化层和全连接层的简单卷积神经网络模型。接下来,我们使用adam优化器和categorical_crossentropy损失函数编译模型,并在训练数据上训练了5个epoch。最后,我们评估了模型在测试集上的性能,并显示了一些预测结果和它们的真实标签。
四、SpaCy:自然语言处理库
SpaCy是一个强大的自然语言处理库,它提供了丰富的工具和模型,用于执行分词、词性标注、命名实体识别、依存句法分析等多种NLP任务。
实例:使用SpaCy进行文本分词和词性标注
import spacy # 加载英文模型
nlp = spacy.load("en_core_web_sm") # 处理文本
text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text) # 打印分词和词性标注结果
for token in doc: print(token.text, token.pos_)
在这个例子中,我们首先加载了英文的SpaCy模型en_core_web_sm。然后,我们使用这个模型对一段文本进行了处理,并遍历了处理后的文档对象doc中的每个token,打印出了它们的文本和词性标注(POS)。
五、总结
Python凭借其丰富的库和强大的社区支持,在人工智能领域占据了重要地位。本文介绍了几个流行的Python人工智能框架,包括Scikit-learn、TensorFlow、PyTorch和SpaCy,并通过具体实例展示了它们的应用。这些框架和库为开发人员提供了强大的工具,帮助他们快速构建和部署各种人工智能应用。无论是进行机器学习、深度学习还是自然语言处理,Python都是一个不可或缺的选择。
相关文章:
Python中的人工智能框架与实例
在人工智能(AI)领域,Python因其简洁的语法、丰富的库和强大的社区支持,成为了最受欢迎的编程语言之一。本文将详细介绍Python中的人工智能框架,并通过具体实例展示如何使用这些框架来实现不同的人工智能应用。 一、Python中的人工智能框架 …...
论文阅读(二十六):Dual Attention Network for Scene Segmentation
文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文:Dual Attention Network for Scene Segmentation 论文链接:Dual Attention Network for Scene Segmentation 代码链接:Github 1.Intr…...
Stack和Queue(3)
Stack和Queue(3) priority_queue的模拟实现 priority_queue.h #include <vector>namespace soobin {template<class T, class Container vector<T>>class priority_queue{public://强制生成默认构造priority_queue() default;temp…...
怎样把学生的成绩单独告知家长?
期中考试季的到来让校园里的气氛似乎也变得紧张起来。家长们开始频繁地联系老师,希望了解孩子的表现;孩子们则在考试后,绞尽脑汁地想出各种理由,以期在成绩不理想时能减轻家长的失望。老师们更是忙得不可开交,不仅要批…...
vue3父组件控制子组件表单验证及获取子组件数值方法
1、关键部分的代码如下,我努力交代清楚了,希望能让大家看懂。 <template><KeepAlive><component ref"comp" :is"compNames[steps[compIndex].comp]" /></KeepAlive><el-button click"prevBtn"…...
【JavaEE】【多线程】单例模式
目录 一、设计模式1.1 单例模式1.1.1 饿汉模式1.1.2 懒汉模式 1.2 线程安全问题1.3 懒汉模式线程安全问题的解决方法1.3.1 原子性问题解决1.3.2 解决效率问题1.3.3 解决内存可见性问题和指令重排序问题 一、设计模式 在讲解案例前,先介绍一个概念设计模式ÿ…...
Java.6--多态-设计模式-抽象父类-抽象方法
一、多态 1.定义--什么是多态? a.同一个父类的不同子类对象,在做同一行为的时候,有不同的表现形式,这就是多态。(总结为:一个父类下的不同子类,同一行为,不同表现形式。࿰…...
JAVA Maven 的安装与配置
一、下载地址 官方网站:Maven – Download Apache Maven 我这里是3.8.6版本 二、安装步骤 maven安装之前要先安装jdk,请确保你的系统已经安装了jdk环境。 1.将下载好的 Maven 进行解压 apache-maven-3.6.8-bin.zip 2.配置本地仓库:修改 conf/settin…...
【程序分享】PCB元件坐标对齐工具 V1.3
↑↑↑点击上方蓝字,关注我们! “PCB元件坐标对齐工具 V1.3”脚本程序在PCB文档中将元件的坐标自动移动到参考圆弧的中心,参考圆弧支持机械层1层和禁止布线层,参考图元的位置任意,不局限于栅格位置。 程序会自动…...
[bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist
[bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist 环境 python 3.10 torch 2.4.0cu118 torchvision 0.19.0cu118 vllm 0.6.1.post2cu118问题详情 if torch._C._d…...
处理Hutool的Http工具上传大文件报OOM
程序环境 JDK版本: 1.8Hutool版本: 5.8.25 问题描述 客服端文件上传主要代码: HttpRequest httpRequest HttpUtil.createPost(FILE_UPLOAD_URL); Resource urlResource new UrlResource(url, fileName); httpRequest.form("file&q…...
transforms的使用
示例代码 from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transforms#打开该图片 img_path"hymenoptera_data/val/bees/10870992_eebeeb3a12.jpg" imgImage.open(img_path) writerSummaryWriter("logs&quo…...
python-PyQt项目实战案例:制作一个视频播放器
文章目录 1. 关键问题描述2. 通过OpenCV读取视频/打开摄像头抓取视频3. 通过PyQt 中的 QTimer定时器实现视频播放4. PyQt 视频播放器实现代码参考文献 1. 关键问题描述 在前面的文章中已经分享了pyqt制作图像处理工具的文章,也知道pyqt通过使用label控件显示图像的…...
反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown
目录 前言1. 简介2. 神经网络中的链式法则3. 微积分的计算4. 公式含义5. 代价函数对权重偏置的敏感度6. 多个神经元的情形7. 回顾相关资料结语 前言 3Blue1Brown 视频笔记,仅供自己参考 这个章节主要来深度讲解反向传播中的一些微积分理论 官网:https://…...
matlab读取excel表格
使用matlab读取excel表格中的数据 使用推荐代码读取excel表格中的数据 path "C:\Users\24975\Desktop\503\GUI展示案例\Tx_20_0_Rx_40_90_0.1_95_L.xlsx";%文件路径 data readtable(path,Sheet,Sheet1,ReadRowNames,false,ReadVariableNames,false,Ra…...
基于springboot+vue实现的助学兼职系统(源码+L文+ppt)4-092
基于springbootvue实现的助学兼职系统(源码L文ppt)4-092 第4章 系统设计 4.1 总体功能设计 一般学生、招聘公司和管理者都需要登录才能进入助学兼职系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者和管理者,一般使…...
⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)
💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...
CMU生成式人工智能大模型:从入门到放弃(九)
引言 在前面的系列博客中,我们深入探讨了生成式对抗网络(GANs)和变分自编码器(VAEs)等生成式模型。今天,我们将探索扩散模型(Diffusion Models)的进一步应用,并讨论在上…...
HTML基础总结
一、简介 HTML(HyperText Markup Language)即超文本标记语言,是用于创建网页的标准标记语言。它通过使用各种标签来定义网页的结构和内容,告诉浏览器如何显示网页。HTML 文档由标签和文本组成,标签用于描述文本的性质…...
EXCELL中如何两条线画入一张图中,标记坐标轴标题?
1,打开excel,左击选中两列, 2,菜单栏>“插入”>”二维折线图”选中一个 3,选中出现的两条线中的一条右击>最下一行,“设置数据系列格式” 4,右测“系列选项中”>点击“次坐标轴” 5…...
SwiftHub性能优化:内存管理、网络缓存与响应速度提升
SwiftHub性能优化:内存管理、网络缓存与响应速度提升 【免费下载链接】SwiftHub GitHub iOS client in RxSwift and MVVM-C clean architecture 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftHub SwiftHub作为一款基于RxSwift和MVVM-C架构的GitHub iOS…...
MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案
MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在数字化时代,重复性操作和…...
避坑指南:用STM32CubeMX配置SPI驱动MAX7219数码管的几个关键细节
STM32CubeMX实战:避开MAX7219数码管驱动的5个致命配置误区 第一次用STM32CubeMX配置SPI驱动MAX7219数码管时,我盯着屏幕上闪烁不定的数字差点崩溃——明明按照教程一步步操作,为什么显示总是错乱?后来才发现,那些看似简…...
构建自主海上防御系统:Mirai Robotics融资420万美元
Mirai Robotics已筹集420万美元的Pre-Seed轮资金,旨在构建自主和智能的海上系统。本轮融资由Primo Ventures、Techshop和40Jemz Ventures领投,并有来自意大利和国际的天使投资人参与。 海洋是地球上最关键的基础设施之一。全球超过80%的贸易通过海路运输…...
轻量模型不轻量:Nano-Banana Turbo LoRA在A10显卡上30秒出图实测
轻量模型不轻量:Nano-Banana Turbo LoRA在A10显卡上30秒出图实测 1. 项目简介 Nano-Banana是一款专门为产品拆解和平铺展示风格设计的轻量化文生图系统。这个项目的核心在于深度融合了专属的Turbo LoRA微调权重,专门针对Knolling平铺、爆炸图、产品部件…...
【Python异步I/O终极指南】:20年CTO亲授asyncio高并发实战心法,避开97%开发者踩过的12个致命陷阱
第一章:Python异步I/O的本质与演进脉络Python异步I/O并非简单的“多线程替代方案”,其本质是**在单线程内通过事件循环(event loop)协同调度I/O等待任务,避免CPU空转,实现高并发吞吐**。它依赖操作系统底层…...
MAI-UI-8B在Ubuntu系统中的性能优化指南
MAI-UI-8B在Ubuntu系统中的性能优化指南 1. 引言 如果你正在Ubuntu系统上运行MAI-UI-8B模型,可能会遇到性能瓶颈问题。模型响应慢、资源占用高、推理速度不理想,这些都是实际使用中常见的痛点。作为一名技术从业者,我深知这些性能问题对开发…...
RIME输入法词库改造指南:让你的THUOCL词库同时支持简体和港台繁体
RIME输入法词库改造指南:让你的THUOCL词库同时支持简体和港台繁体 在中文输入法的世界里,RIME以其高度可定制性赢得了技术爱好者的青睐。但当我们面对不同地区的中文用户时,一个棘手的现实问题浮现:如何让单一词库同时满足大陆简…...
java中的类是数据类型吗 类作为引用类型的特点
Java中的类是数据类型吗?当然是的。类属于Java中的引用类型(reference type),这意味着当我们创建一个类的例子时,它实际上是在堆内存中分配空间,而变量只存储这个例子的参考。作为一种参考类型,…...
MIKE21桥墩模拟避坑指南:从‘默认糙率倒置’到‘软启动设置’的完整配置流程
MIKE21桥墩模拟避坑指南:从糙率倒置到软启动的实战精要 当第一次打开MIKE21的桥墩模拟模块时,大多数工程师都会面临三个灵魂拷问:为什么输入的糙率值比教科书大几十倍?软启动参数究竟该设多长?桥墩断面分段数对结果影响…...
