python常用的深度学习框架

目录

一:介绍

二:使用


Python中有几个非常受欢迎的深度学习框架,它们提供了构建和训练神经网络所需的各种工具和库。以下是一些最常用的Python深度学习框架:

一:介绍

TensorFlow:由Google开发的TensorFlow是最受欢迎的深度学习框架之一。它支持分布式训练,能够在不同硬件上高效运行,包括CPU、GPU和TPU。TensorFlow还提供了一个高级API,称为Keras,它使构建和训练神经网络变得更加简单。


PyTorch:由Facebook开发的PyTorch是另一个非常受欢迎的深度学习框架。与TensorFlow相比,PyTorch被认为更加灵活和易于使用,尤其是在研究和原型设计方面。PyTorch支持动态计算图,这意味着您可以在运行时更改神经网络的结构。


Keras:虽然Keras现在被集成在TensorFlow中作为其高级API,但它最初是一个独立的深度学习框架。Keras以其简单性和用户友好性而闻名,它使得快速实验和原型设计变得非常容易。Keras在底层使用TensorFlow、Theano或CNTK等后端框架进行计算。


MXNet:由亚马逊AWS支持的MXNet是另一个高效且可扩展的深度学习框架。它在速度和内存使用方面进行了优化,支持多种编程语言和硬件平台。MXNet还提供了一个名为Gluon的高级API,用于简化神经网络的构建和训练。

二:使用

1: TensorFlow:

安装TensorFlow

pip install tensorflow

一旦TensorFlow被导入,您就可以开始创建张量(tensors)、定义计算图、构建神经网络模型等。

以下是一个简单的TensorFlow示例,演示如何创建一个张量并执行计算:


import tensorflow as tf  

# TensorFlow 2.x 使用 Eager Execution,无需显式创建会话  
x = tf.constant(3)  
y = tf.constant(4)  
z = x + y  

# 直接打印结果,无需会话  
print(z.numpy())

2:PyTorch

安装
pip install torch torchvision torchaudio cpuonly

以下是一个简单的PyTorch示例,演示了如何创建一个张量(tensor)、执行计算以及使用自动梯度进行求导:


import torch  

# 创建一个未初始化的5*3矩阵  
x = torch.empty(5, 3)  
print(x)  

# 创建一个随机初始化的矩阵  
x = torch.rand(5, 3)  
print(x)  

# 创建一个全为1的矩阵,数据类型为long  
x = torch.ones(5, 3, dtype=torch.long)  
print(x)  

# 创建一个从0到9的一维张量  
x = torch.arange(10)  
print(x)  

# 执行计算  
y = x + 2  
print(y)  

# 使用自动梯度  
z = y * y * 3  
out = z.mean()  
print(z, out)  

# 反向传播,计算梯度  
out.backward()  
print(x.grad)

3:Keras

在Python中使用Keras,你首先需要安装TensorFlow,因为Keras现在被整合在TensorFlow中作为它的高级API。从TensorFlow 2.0开始,Keras成为了TensorFlow的一部分,并且被设置为了默认的API。这意味着你可以直接通过TensorFlow来访问Keras的功能。

下面是一个使用Keras构建简单全连接神经网络的例子:

# 导入所需库  
import tensorflow as tf  
from tensorflow.keras.models import Sequential  
from tensorflow.keras.layers import Dense  

# 创建一个Sequential模型  
model = Sequential()  

# 添加第一个(输入)层,32个输入节点,16个输出节点  
model.add(Dense(16, input_dim=32, activation='relu'))  

# 添加第二个隐藏层,16个输入节点,8个输出节点  
model.add(Dense(8, activation='relu'))  

# 添加输出层,8个输入节点,1个输出节点  
model.add(Dense(1, activation='sigmoid'))  

# 编译模型,指定损失函数、优化器和评估指标  
model.compile(loss='binary_crossentropy',  
              optimizer='adam',  
              metrics=['accuracy'])  

# 打印模型摘要  
model.summary()

4:MXNet

安装:
pip install mxnet

MXNet 提供了多种方式来构建模型,其中包括使用符号 API 和 Gluon API。下面是一个使用 Gluon API 构建简单多层感知器 (MLP) 的例子:

class MLP(gluon.Block):  
    def __init__(self, **kwargs):  
        super(MLP, self).__init__(**kwargs)  
        self.hidden = gluon.nn.Dense(256, activation='relu')  
        self.output = gluon.nn.Dense(10)  

    def forward(self, x):  
        x = self.hidden(x)  
        x = self.output(x)  
        return x  

# 实例化模型  
net = MLP()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466316.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科大计网学习记录笔记(十):P2P 应用

前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…

C++,stl,set/mutiset详解

目录 1.set容器的构造和赋值 2.set的大小和交换 3.set的插入和删除 4.set的查找和统计 5.set和mutiset区别 6.pair对组的创建 7.set排序 1.set的内置类型指定排序规则 2.set的自定义数据类型指定排序 1.set容器的构造和赋值 #include<bits/stdc.h> using name…

android中使用Bitmp对象绘制图形

1、引言 你是否还在因为不懂UI设计而不得不去借用别人的图片&#xff0c;甚至使用各种网图作为界面布局的一部分&#xff0c;那么今天就教你使用Bitmap对象去绘制自定义图形&#xff0c;并保存为png格式的图片&#xff0c;须知图片编辑软件本就是程序员开发出来的&#xff0c;我…

力扣细节题:二叉树前序遍历

细节一&#xff1a;题目在note部分提示我们要使用malloc函数去创建数组&#xff0c;因为它没有提供给我们数组&#xff0c;而题目中的指针returnsize提醒我们这是一个变量进行传址操作用于释放之前malloc的空间&#xff0c;粗暴地按题目范围malloc空间会报错&#xff0c;所以必…

java数据结构与算法刷题-----LeetCode594. 最长和谐子序列

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 子序列要尽可能长&#xff0c;并且最大值和最小值之间的差&#…

【数据结构】哈希表的开散列和闭散列模拟

哈希思想 在顺序和树状结构中&#xff0c;元素的存储与其存储位置之间是没有对应关系&#xff0c;因此在查找一个元素时&#xff0c;必须要经过多次的比较。 顺序查找的时间复杂度为0(N)&#xff0c;树的查找时间复杂度为log(N)。 我们最希望的搜索方式&#xff1a;通过元素…

磁盘分区和挂载

一、分区概念 1、基本概念 (1) 一块硬盘最多只能有4个主分区 (2) 其中一个(且最多只能有一个)主分区能作为扩展分区,而扩展分区不能写入数据,只能包含逻辑分区 2、格式化 分区之后的磁盘并不能直接使用&#xff0c;而是需要先进行格式化&#xff0c;又称为逻辑格式化。它是指…

2024牛客寒假算法基础集训营2

C Tokitsukaze and Min-Max XOR 题目大意 给定一个数组从任取数构成序列序列满足&#xff0c;&#xff08;可以只取一个数&#xff09;问能构造出多少个 解题思路 定找双枚举时间复杂度到&#xff0c;考虑利用加速统计的方案&#xff0c;即将数字按二进制位拆分挂在树上对于…

【学网攻】 第(26)节 -- 综合网络实验一

系列文章目录 目录 系列文章目录 文章目录 前言 一、综合实验 二、实验 1.引入 实验目标 实验设备 实验拓扑图 实验配置 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节…

【通讯录案例-保存开关状态 Objective-C语言】

一、接下来,我们要实现一个什么功能呢,在这个,我们的“通讯录”里边儿, 1.我们有两个开关,“记住密码”、“自动登录”、两个开关, 如果我们点击“记住密码”, 如果我们点击“记住密码”,然后呢,我把这个程序关了,我下一次再打开这个程序的时候,这个用户名和密码,…

【粉丝福利社】Flutter小白开发——跨平台客户端应用开发学习路线(文末送书-完结)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

Linux第48步_编译正点原子的出厂Linux内核源码

编译正点原子的出厂 Linux 内核源码&#xff0c;为后面移植linux做准备。研究对象如下&#xff1a; 1)、linux内核镜像文件“uImage” 路径为“arch/arm/boot”&#xff1b; 2)、设备树文件“stm32mp157d-atk.dtb” 路径为“arch/arm/boot/dts” 3)、默认配置文件“stm32m…