深度学习(二)框架与工具:开启智能未来之门(2/10)

一、深度学习框架:引领智能变革的利器 

深度学习框架在人工智能领域中扮演着至关重要的角色,堪称引领智能变革的利器。随着人工智能技术的飞速发展,深度学习框架不断崛起并迅速壮大。

主流的深度学习框架如 TensorFlow、PyTorch、Keras 等,为开发者提供了强大的工具,极大地推动了人工智能应用的发展。以 TensorFlow 为例,它由 Google Brain 团队开发,于 2015 年首次发布。TensorFlow 具有灵活的计算图结构,用户可以在不执行计算的情况下构建复杂的模型,然后选择合适的时机进行实际计算。同时,它具备自动微分功能,为训练神经网络提供了极大的便利。此外,TensorFlow 支持多种硬件和操作系统,包括 CPU、GPU 和 TPU,以及 Windows、Linux 和 macOS 等,具有很强的跨平台性。它还提供了丰富的工具和库,如 TensorBoard 用于可视化训练过程,TensorFlow Hub 用于共享预训练模型,TensorFlow Lite 用于移动设备部署等。

深度学习框架的重要性不言而喻。它们就像智能时代的操作系统,下接芯片,上承各种业务模型和行业应用。通过对底层语言和重要算法模型进行封装,开发者无需编写大量重复代码,可以将更多精力投入到应用的研发中,这对于人工智能标准化、自动化和模块化的形成意义重大。目前,主流的深度学习框架大都是开源的,如 Caffe、TensorFlow、飞桨(PaddlePaddle)、PyTorch 等,人人可用。这使得全球的开发者能够共同参与到人工智能的发展中,加速技术的创新和应用的落地。

二、主流框架深度剖析

(一)TensorFlow:强大的深度学习引擎

  1. TensorFlow 以其强大的计算能力著称,能够高效地利用 GPU 和分布式计算进行加速,处理大规模的数据和复杂的模型计算。其灵活的构建模型方式允许开发者通过编写计算图来定义模型结构,可灵活地组合和堆叠各种操作,满足不同任务的需求。自动求导功能使得模型参数的优化更加便捷,能够自动计算模型中各个操作的梯度,实现反向传播算法。此外,TensorFlow 拥有庞大的用户社区,提供了丰富的文档、教程和模型库,为开发者提供了强大的支持,形成了大型生态系统。
  1. TensorFlow 的优势在于可扩展性强,既可以在单个 CPU 或 GPU 上运行,也能在多个节点的分布式系统上进行并行计算,处理大规模的数据和复杂的模型。基于数据流图的编程模型使得模型的构建和调试更加灵活直观,同时也方便进行优化和并行计算。丰富的预定义算法和模型,如神经网络、卷积神经网络、循环神经网络等,为开发者提供了便利,可以直接使用或进行修改和扩展。跨平台支持使得 TensorFlow 可以在多种操作系统上运行,包括 Linux、Windows 和 macOS,并且可以在多种编程语言中使用,如 Python、C++ 和 Java。
  1. TensorFlow 适用于广泛的领域。在机器学习和深度学习研究方面,它提供了各种常见的机器学习和深度学习算法的实现,支持自定义模型的构建和训练。在图像和语音识别领域,可用于图像分类、目标检测、图像生成以及语音转文字等任务,提供了一些预训练好的模型如 Inception、ResNet 等。在自然语言处理方面,可以构建深度学习模型实现文本分类、文本生成、机器翻译等任务。在强化学习领域,提供了一些用于实现强化学习的算法和接口,可用于构建智能体并与环境进行交互。

(二)PyTorch:灵活与直观的代表

  1. PyTorch 的基本概念包括张量,它是类似于多维数组的数据结构,用于存储和处理大规模的数值数据,且支持自动求导功能,能方便地计算梯度。自动微分系统能够自动计算张量上所有操作的导数,对于深度学习模型的训练至关重要。动态计算图允许在运行时构建和修改计算图,相比静态计算图框架更加灵活,方便进行原型设计和实验开发。变量是张量和计算的组合,包含了张量和自动微分的信息,方便进行前向传播和反向传播,并计算损失函数的梯度。
  1. PyTorch 的特点和优势首先体现在直观的动态图计算,开发者可以使用 Python 控制流来构建计算图,根据需要随时添加、删除或修改节点和边。良好的社区支持为开发者提供了丰富的资源和解决方案。灵活的构建模型方式允许开发者使用 Python 类或函数来定义和训练深度学习模型,自定义网络层、损失函数和优化器等。
  1. PyTorch 在深度学习领域可用于构建、训练和评估各种类型的神经网络模型。在自然语言处理方面,处理可变长度的序列数据更加方便,广泛应用于文本分类、情感分析、机器翻译和文本生成等任务。在计算机视觉领域,提供了丰富的计算机视觉库,可用于图像分类、目标检测、图像分割和图像生成等任务,支持使用预训练的模型进行迁移学习。在强化学习领域,可使用深度强化学习算法训练智能体解决复杂任务。在生成模型方面,支持各种生成模型的建模和训练,如变分自编码器、生成对抗网络和自回归模型等。

(三)Keras:简单易用的高级 API

  1. Keras 具有简单易用的特点,用户只需关注训练过程中的定义层、编译器、优化器、损失函数等,即可快速搭建并训练深度学习模型。模块化设计使得用户可以方便地添加、删除和修改神经网络模块。多后端支持包括 TensorFlow、Theano 和 CNTK 等,使其可以在各种设备上运行并根据需要进行优化。快速原型功能让用户能在短时间内构建和测试深度学习模型。大量的文档和教程帮助用户快速上手并解决问题。可扩展性强,提供了灵活的自定义层机制,用户可以方便地实现自定义层功能,无需修改框架源码。
  1. Keras 的优势在于利用各种优化技术使得神经网络应用程序接口使用变得容易,性能更好。同时,它提供了行业强度的性能和可扩展性,可以满足不同规模和复杂程度的项目需求。
  1. Keras 在计算机视觉领域可用于图像分类、目标检测、图像分割等任务。在自然语言处理方面,可用于文本分类、情感分析、机器翻译等任务。在语音识别领域也有广泛应用。此外,在初创企业和知名公司中都得到了广泛应用,因为其简单易用的特点可以帮助开发者快速构建和验证模型,加快项目的开发进度。

三、框架比较与选择

(一)模型构建方面

  1. TensorFlow 在模型构建方面具有高度的灵活性,可以通过构建复杂的计算图来实现各种模型结构。它适合处理大规模的模型和数据,对于需要高度定制化的项目具有优势。然而,这种灵活性也带来了一定的复杂性,对于初学者来说可能需要一定的学习曲线。
  1. PyTorch 的动态计算图使得模型构建更加直观和灵活。开发者可以在运行时动态地构建和修改计算图,这对于实验性的项目和需要快速迭代的开发过程非常有利。同时,PyTorch 的代码风格更加接近 Python 的原生编程风格,易于理解和调试。
  1. Keras 作为高级 API,提供了简洁的接口和模块化的设计,使得模型构建变得非常容易。用户可以通过简单地组合各种层来构建模型,无需深入了解底层的实现细节。但是,这种高级 API 的设计也限制了一些高级用户对模型的深度定制。

(二)训练效率方面

  1. TensorFlow 在训练效率方面表现出色,尤其是在大规模分布式训练方面具有强大的优势。它可以有效地利用多台机器进行并行训练,大大缩短训练时间。此外,TensorFlow 还提供了一些优化工具和技术,如自动混合精度训练、模型并行化等,可以进一步提高训练效率。
  1. PyTorch 在训练效率方面也不逊色,尤其是在小型和中型规模的项目中。它的动态计算图可以根据运行时的情况进行优化,提高计算效率。同时,PyTorch 也支持分布式训练,虽然在一些方面可能没有 TensorFlow 那么全面,但对于大多数项目来说已经足够。
  1. Keras 在训练效率方面相对较弱,因为它是建立在其他框架之上的高级 API。但是,Keras 可以利用其底层框架的优势,如 TensorFlow 的高效训练机制,来提高训练效率。同时,Keras 也提供了一些优化技术,如数据并行化、模型压缩等,可以在一定程度上提高训练效率。

(三)代码可读性方面

  1. PyTorch 在代码可读性方面具有明显的优势。它的代码风格简洁直观,与 Python 的原生编程风格非常相似,易于理解和调试。同时,PyTorch 的动态计算图使得代码的逻辑更加清晰,易于跟踪和理解。
  1. Keras 的代码可读性也比较高,因为它提供了简洁的接口和模块化的设计。用户可以通过简单地组合各种层来构建模型,代码结构清晰,易于阅读和维护。
  1. TensorFlow 的代码可读性相对较弱,尤其是在使用其低级 API 时。由于 TensorFlow 的计算图是预先生成的,代码的逻辑可能不太直观,需要一定的时间来理解和调试。

(四)选择建议

  1. 对于大规模的项目和需要高度定制化的模型,TensorFlow 是一个不错的选择。它的强大的计算能力和分布式训练功能可以满足大规模数据和复杂模型的需求。同时,TensorFlow 的庞大的用户社区和丰富的文档资源也为开发者提供了强大的支持。
  1. 对于实验性的项目和需要快速迭代的开发过程,PyTorch 是一个更好的选择。它的动态计算图和直观的代码风格使得模型构建和调试更加容易,适合进行快速的实验和探索。
  1. 对于初学者和需要快速构建模型的项目,Keras 是一个很好的选择。它的简洁的接口和模块化的设计使得模型构建变得非常容易,无需深入了解底层的实现细节。同时,Keras 的大量的文档和教程也为初学者提供了很好的学习资源。

总之,选择哪个深度学习框架取决于项目的具体需求和开发者的个人偏好。在实际应用中,开发者可以根据自己的需求选择合适的框架,或者结合多个框架的优势来实现更好的效果。

四、深度学习工具:助力模型优化与理解

(一)数据预处理工具

数据预处理在深度学习中起着至关重要的作用,它直接影响着模型的性能和准确性。常用的数据预处理工具包括 pandas 和 NVIDIA DALI 等。

pandas:在 Python 常用的数据分析工具中,pandas 软件包常被用于深度学习的数据预处理。它可以与张量兼容,能够读取各种格式存储的数据,如人工创建的数据集存放在 csv 文件中。通过 iloc 索引函数,可以将数据分为输入和输出部分,方便进行后续处理。对于缺失值,pandas 可以采用插值法或删除法进行处理,如用均值来代替同一列中的缺失值,并可以在均值计算中加入限制条件,仅在数据类型为数值的列进行平均值插值。对于离散值或类别值,pandas 会自动将缺失值视为一个类别进行转化。最后,将处理后的数据转化为张量格式,就可以使用张量函数进行进一步操作。

NVIDIA DALI:这是由英伟达推出的一款用于深度学习开发的数据和图像增强工具。它具有以下特点和应用场景:

  • 多框架支持:能与 MxNet、TensorFlow 和 PyTorch 等简单的框架集成。
  • 多格式支持:具有支持多种数据格式的可移植训练工作流,如 JPEG、原始格式、LMDB、RecordIO 和 TFRecord 等。
  • 自定义数据工作流:具有可配置图形和自定义 operator 的自定义数据工作流。
  • GPU 加速:能够帮助深度学习开发者快速实现数据和图像增强,将数据预处理任务转移到 GPU 上来,解决了数据处理管道目前主要在 CPU 上执行成为性能和可扩展性瓶颈的问题。在图像分类、对象检测和语音识别等领域有广泛应用,如在 Kaggle 竞赛中,已被证明能够大幅提升推理速度。此外,还支持多 GPU 扩展,适用于大规模并行训练环境。

(二)模型可视化工具

模型可视化工具在深度学习中具有重要作用,它可以帮助开发者更好地调试和优化模型,理解模型的内部结构和训练过程。

通过可视化,我们可以更直观地理解模型的内部结构和运作机制,从而更好地进行调试。例如,结构可视化可以将模型的结构以图形的方式展现出来,如将神经网络的结构以图的形式展现,节点代表神经元,边代表连接。参数可视化可以展示不同层的参数数量,激活图可视化可以显示模型在不同层的激活情况,梯度可视化可以帮助理解模型参数的更新方向。

一些常用的模型可视化工具包括:

  • keras.utils.vis_utils:提供了使用 Graphviz 绘制 Keras 模型的实用函数。在使用之前需要安装一些其他的依赖,如 pydot、pydotplus 和 graphviz。设置完成后,可以使用 model_img_file = 'model.png',tf.keras.utils.plot_model (model, to_file=model_img_file, show_shapes=True, show_layer_activations=True, show_dtype=True, show_layer_names=True) 来绘制模型图,展示模型的结构、输入输出形状、激活函数等信息。
  • Visualkears:只支持 CNN(卷积神经网络)的分层样式架构生成和大多数模型的图形样式架构,包括普通的前馈网络。可以使用 layered_view () 方法查看 CNN 模型架构。
  • TensorBoard:是 TensorFlow 提供的一个强大的可视化工具,也可用于 PyTorch。通过在 fit () 中使用 Keras TensorBoard Callback,定义 logdir,然后在训练模型时传入 callbacks=[tensorboard_callback],模型训练完成后,启动 TensorBoard 并等待 UI 加载,就可以通过单击 “Graphs” 查看模型的可视化结果。
  • Netron:是专门为神经网络、深度学习和机器学习模型设计的查看器。支持 Keras、TensorFlow lite、ONNX、Caffe,并对 PyTorch、TensorFlow 有实验性支持。可以通过浏览器上传模型文件查看每一层的可视化结果。
  • PyTorchViz:依赖于 graphviz,用于可视化 PyTorch 执行图。只需要一个方法即可,如 from torchviz import make_dot,make_dot (y, params=dict (list (pytorch_model.named_parameters ()))).render ("torchviz", format="png"),可以生成一个 png 文件,展示模型的结构和参数信息。

五、总结与代码案例

深度学习框架和工具在人工智能领域中发挥着至关重要的作用。通过对主流深度学习框架的深入剖析,我们了解到不同框架在模型构建、训练效率、代码可读性等方面各有优劣。同时,数据预处理工具和模型可视化工具也为深度学习模型的开发和优化提供了有力支持。

以下是一个使用 PyTorch 构建简单神经网络的代码案例:

import torch
import torch.nn as nn
import torch.optim as optim

# 定义一个简单的神经网络
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.fc2 = nn.Linear(20, 5)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        return self.fc2(x)

# 创建模型实例
model = Net()

# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)

# 模拟输入数据
input_data = torch.randn(32, 10)
target = torch.randint(0, 5, (32,))

# 训练模型
for epoch in range(100):
    optimizer.zero_grad()
    output = model(input_data)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()

这个代码案例展示了如何使用 PyTorch 构建一个简单的神经网络,并进行训练。通过定义模型结构、损失函数和优化器,然后使用输入数据进行训练,可以逐步优化模型的参数,提高模型的性能。

在实际应用中,开发者可以根据项目需求选择合适的深度学习框架和工具,并结合实际情况进行代码实现。同时,不断探索和尝试新的技术和方法,以提高深度学习模型的性能和效果。

总之,深度学习框架和工具为人工智能的发展提供了强大的支持,通过合理选择和使用这些工具,可以更好地开发和优化深度学习模型,推动人工智能技术的不断进步。

六、学习资料分享

(一)在线课程平台

  1. Coursera:提供了来自世界顶尖大学和机构的深度学习课程,如斯坦福大学的《机器学习》、吴恩达的《深度学习专项课程》等。这些课程涵盖了深度学习的基础知识、框架使用、模型构建等方面,适合不同层次的学习者。
  1. Udemy:有众多深度学习相关课程,从入门到高级,包括 TensorFlow、PyTorch 等框架的实战课程。课程内容丰富,讲解详细,并且可以根据自己的学习进度进行学习。
  1. edX:与全球知名高校合作,推出了一系列深度学习课程。例如,麻省理工学院的《深度学习导论》课程,系统地介绍了深度学习的理论和实践。

(二)书籍推荐

  1. 《深度学习》(Deep Learning):由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 合著,被广泛认为是深度学习领域的经典教材。书中深入介绍了深度学习的基本概念、算法和技术,涵盖了神经网络、卷积神经网络、循环神经网络等内容。
  1. 《动手学深度学习》:这本书以实践为导向,通过大量的代码示例和实际项目,帮助读者快速掌握深度学习的技术和方法。同时,书中还提供了在线学习资源,方便读者进行学习和交流。
  1. 《Python 深度学习》:介绍了如何使用 Python 和深度学习框架进行深度学习项目开发。书中涵盖了深度学习的基础知识、框架使用、模型构建和优化等方面,适合有一定 Python 编程基础的读者。

(三)技术博客和论坛

  1. CSDN:国内知名的技术社区,有大量关于深度学习的博客文章和技术讨论。开发者可以在上面分享自己的经验和心得,也可以从他人的文章中学习到新的知识和技术。
  1. 知乎:有很多深度学习领域的专业人士和爱好者在上面分享知识和经验。可以通过提问和回答的方式,解决自己在学习和实践中遇到的问题。
  1. GitHub:全球最大的开源代码托管平台,有很多优秀的深度学习项目和代码库。开发者可以在上面学习他人的代码,也可以参与到开源项目中,为深度学习的发展做出贡献。

通过利用这些学习资料,学习者可以更加系统地学习深度学习的知识和技术,提高自己的实践能力和创新能力。同时,也可以与其他学习者进行交流和互动,共同推动深度学习领域的发展。

博主还写跟本文相关的文章,邀请大家批评指正:

1、深度学习(一)基础:神经网络、训练过程与激活函数(1/10)

2、深度学习(二)框架与工具:开启智能未来之门(2/10)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

社招高频面试题

1.单例模式 面试突击50:单例模式有几种写法? 2.Mybatis缓存机制 MyBatis的一、二级缓存查询关系 一级缓存是SqlSession级别,不能跨SqlSession共享,默认开启。 二级缓存是基于mapper namespace级别的,可以跨SqlSessi…

第J6周:ResNeXt-50实战解析(pytorch版)

>- **🍨 本文为[🔗365天深度学习训练营]中的学习记录博客** >- **🍖 原作者:[K同学啊]** 任务: ●阅读ResNeXt论文,了解作者的构建思路 ●对比我们之前介绍的ResNet50V2、DenseNet算法 ●使用ResNeX…

基于Java+SpringBoot+Vue的古典舞在线交流平台的设计与实现

基于JavaSpringBootVue的古典舞在线交流平台的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&a…

科研类型PPT的制作技巧

目录 科研类型PPT的制作技巧 荣誉: 首页:ppt开头结尾 小标题 重点标记:加粗红色下划线 使用三线表 图片,文本排版 一、明确目的与受众分析 二、基础设计原则 三、内容组织与呈现 四、绘图与模型制作 五、其他注意事项 科研类型PPT的制作技巧 荣誉: 首页:ppt开…

spark读取parquet文件

源码 parquet文件读取的入口是FileSourceScanExec,用parquet文件生成对应的RDD 非bucket文件所以走createNonBucketedReadRDD方法。 createNonBucketedReadRDD 过程: 确定文件分割参数 openCostInBytes4M 相关参数spark.sql.files.openCostInBytes4M…

Vue 上传图片前 裁剪图片

一. 使用的技术 vue-cropper 文档:vue-cropper | A simple picture clipping plugin for vue 二. 安装 npm install vue-cropper 或 yarn add vue-cropper 三. 引入 在使用页面中引用 import { VueCropper } from vue-cropper; 四. 使用 配置项&#xff1…

运动爱好者不可错过的双十一特惠,2024年度最火运动装备大推荐

随着健康意识的日益增强,越来越多的人加入到了运动的行列中。无论是追求速度与激情的跑步爱好者,还是享受汗水与肌肉碰撞的健身房常客,亦或是喜欢在自然中寻找乐趣的户外探险家,一款合适的运动装备总是能让人在运动过程中事半功倍…

【MySQL】索引和事务

目录 🌴索引 🚩概念 🚩索引的作用 🚩索引的使用场景 🚩索引的使用 🏀查看索引 🏀创建索引 🏀删除索引 🎄索引的底层数据结构 🚩引入B树(B-树) &am…

【含开题报告+文档+PPT+源码】基于SpringBoot和Vue的编程学习系统

开题报告 随着信息技术的迅猛发展和数字化转型的深入推进,编程技能已经成为现代社会中不可或缺的一项基本能力。无论是软件开发、数据分析还是人工智能等领域,编程都扮演着至关重要的角色。因此,培养和提高编程技能对于个人职业发展和社会创…

Python Numpy 实现神经网络自动训练:反向传播与激活函数的应用详解

Python Numpy 实现神经网络自动训练:反向传播与激活函数的应用详解 这篇文章介绍了如何使用 Python 的 Numpy 库来实现神经网络的自动训练,重点展示了反向传播算法和激活函数的应用。反向传播是神经网络训练的核心,能够通过计算梯度来优化模…

文献阅读:通过深度神经网络联合建模多个切片构建3D整体生物体空间图谱

文献介绍 文献题目: 通过深度神经网络联合建模多个切片构建3D整体生物体空间图谱 研究团队: 杨灿(香港科技大学)、吴若昊(香港科技大学) 发表时间: 2023-10-19 发表期刊: Nature M…

01 漫画解说-图片框的分割

to 查找最佳的轮廓模式 import cv2 as cv import numpy as np from matplotlib import pyplot as pltimg cv.imread(data/test02.png,0) ret,thresh1 cv.threshold(img,127,255,cv.THRESH_BINARY) ret,thresh2 cv.threshold(img,127,255,cv.THRESH_BINARY_INV) ret,thres…

搭建代购系统时如何保证商品信息的真实性和可靠性

搭建代购系统时,可从以下几个方面保证商品信息的真实性和可靠性: 一、供应商管理: 严格筛选供应商:对供应商进行全面的背景调查,包括其经营资质、信誉记录、行业口碑等。只选择与正规、有良好信誉的供应商合作&#…

LINUX1.2

1.一切都是一个文件 (硬盘) 2.系统小型 轻量型,300个包 3.避免令人困惑的用户界面 ------------------> 就是没有复杂的图形界面 4.不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型(win…

JSON 注入攻击 API

文章目录 JSON 注入攻击 API"注入所有东西"是"聪明的"发生了什么? 什么是 JSON 注入?为什么解析器是问题所在解析不一致 JSON 解析器互操作性中的安全问题处理重复密钥的方式不一致按键碰撞响应不一致JSON 序列化(反序列化)中的不一致 好的。JSON 解析器…

免费开源AI助手,颠覆你的数字生活体验

Apt Full作为一款开源且完全免费的软件,除了强大的自然语言处理能力,Apt Full还能够对图像和视频进行一系列复杂的AI增强处理,只需简单几步即可实现专业级的效果。 在图像处理方面,Apt Full提供了一套全面的AI工具,包…

springboot 同时上传文件和JSON对象

控制器代码 PostMapping("/upload") public ResponseEntity<String> handleFileUpload(RequestPart("file") MultipartFile file,RequestPart("user") User user) {// 处理文件和用户信息return ResponseEntity.ok("File and user i…

【MATLAB实例】批量提取.csv数据并根据变量名筛选

【MATLAB实例】批量提取.csv数据并根据变量名筛选 准备&#xff1a;数据说明MATLAB批量提取参考 准备&#xff1a;数据说明 .csv数据如下&#xff1a; 打开某表格数据&#xff0c;如下&#xff1a;&#xff08;需要说明的是此数据含表头&#xff09; 需求说明&#xff1a;需…

升级Unity后产生的Objects内存泄露现象

1&#xff09;升级Unity后产生的Objects内存泄露现象 2&#xff09;能否使用OnDemandRendering API来显示帧率 3&#xff09;Unity闪退问题 4&#xff09;配置表堆内存如何优化 这是第405篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了UWA问答…

中航资本:大幅加仓!社保基金重仓股曝光

跟着上市公司三季报布满宣告&#xff0c;社保基金2024年三季度末重仓股及持股改变状况浮出水面。 Wind数据闪现&#xff0c;到10月21日&#xff0c;已有191家上市公司宣告了2024年三季报&#xff0c;其间有34家上市公司的前十大流通股东中呈现了社保基金的身影&#xff0c;社保…