Streamlit从入门到精通:构建数据应用的利器

news2025/4/25 7:08:00

在数据科学与机器学习日益普及的今天,如何快速将模型部署为可交互的应用成为了许多数据科学家的重要任务。Streamlit,作为一个开源的Python库,专为数据科学家设计,能够帮助我们轻松构建美观且直观的Web应用。本文将从入门到精通,带你全面了解Streamlit的使用方法和最佳实践。

一、什么是 Streamlit?

Streamlit 是一个用于创建数据应用的开源 Python 库,它专为数据科学家和机器学习工程师设计,旨在简化数据可视化和交互式应用程序的构建过程。凭借其简单易用的 API,Streamlit 使得开发者能够将数据脚本快速转化为美观且可交互的 Web 应用,而不需要深入掌握前端开发技术。

1.1 Streamlit 的目的

Streamlit 的设计目的是为了降低数据应用开发的门槛,让数据科学家能够更专注于数据分析和模型开发,而无需投入太多时间在 Web 开发的复杂性上。通过 Streamlit,用户可以快速构建原型,分享分析结果,甚至创建完整的产品。这使得数据科学家能够更快地验证想法、迭代模型和展示成果。

1.2 Streamlit 的核心特点

  • 简洁易用:Streamlit 的 API 设计直观,用户只需编写少量 Python 代码即可构建复杂的应用。通过简单的函数调用,用户可以实现各种功能,无需掌握 HTML、CSS 或 JavaScript。

  • 实时更新:应用的界面会根据代码的修改实时更新,用户在修改代码后只需保存,Streamlit 会自动重新加载应用,极大提高了开发效率。

  • 丰富的组件:Streamlit 提供了多种内置组件,例如文本框、按钮、滑块、下拉菜单、数据表等。这些组件可以轻松集成到应用中,增强交互性,使用户能够与数据进行直接交互。

  • 支持多种数据可视化库:Streamlit 能够与流行的 Python 数据可视化库如 Matplotlib、Seaborn、Plotly 和 Altair 无缝集成,使得用户可以轻松创建各种图表和可视化效果。

  • 无缝连接 Python 生态:Streamlit 与 NumPy、Pandas、Scikit-learn 等主流数据科学库兼容,使得用户可以直接利用已有的数据处理和机器学习工具,无需额外操作。

  • 开源和社区支持:作为一个开源项目,Streamlit 拥有一个活跃的社区,用户可以获得丰富的文档、示例和支持,方便学习和交流。

1.3 适用场景

Streamlit 特别适合用于以下场景:

  • 数据可视化:快速展示数据分析结果,通过图表和可视化工具帮助理解数据。

  • 机器学习模型展示:将训练好的机器学习模型转化为用户友好的接口,便于非技术人员进行交互和使用。

  • 数据报告和仪表盘:创建动态的数据报告和仪表盘,实时更新数据,便于决策和分析。

  • 快速原型开发:帮助数据科学家快速构建原型,迭代设计和验证想法。

通过这些特点和应用场景,Streamlit 已成为数据科学领域中一种流行的工具,使得构建和分享数据应用变得更加简单。

二、安装与环境配置

在开始使用 Streamlit 之前,我们需要确保 Python 环境已经正确配置并安装了 Streamlit 库。以下是详细的安装步骤和配置方法。

2.1 环境要求

  • Python 版本:Streamlit 支持 Python 3.7 及以上版本。建议使用最新的稳定版本,以便获得最新的功能和性能改进。
  • 操作系统:Streamlit 可以在 Windows、macOS 和 Linux 系统上运行,兼容性良好。

2.2 安装 Streamlit

  1. 确保安装了 Python 和 pip:首先,请确保你的计算机上安装了 Python。你可以通过在终端或命令提示符中输入以下命令检查 Python 和 pip 的版本:

    python --version
    pip --version
    

    如果未安装 Python,可以从 Python 官网 下载并安装。

  2. 安装 Streamlit:使用 pip 安装 Streamlit,非常简单。只需在命令行中输入以下命令:

    pip install streamlit
    

    该命令会自动下载并安装 Streamlit 及其依赖库。安装完成后,你可以通过以下命令来确认安装是否成功:

    streamlit --version

    如果命令返回 Streamlit 的版本号,说明安装成功。

2.3 验证安装

为了确保你正确安装了 Streamlit,可以运行一个示例应用。输入以下命令:

streamlit hello

此命令会启动一个示例应用,并在默认浏览器中打开。你将看到一个包含多个组件的页面,展示了 Streamlit 的基本功能和用法。

2.4 创建第一个 Streamlit 应用

创建一个新的 Python 文件,例如 app.py,并在其中添加以下简单代码:

import streamlit as st

st.title("我的第一个 Streamlit 应用")
st.write("欢迎使用 Streamlit!")

在终端中运行你的应用:

streamlit run app.py

此时,默认浏览器将打开一个新窗口,展示你刚刚创建的简单应用。

2.5 常见问题与解决方案

  • 环境问题:在某些情况下,可能会出现依赖库版本不兼容的问题。建议使用虚拟环境(如venv或conda)来隔离项目环境,确保各个项目之间的依赖关系不会冲突。

  • 端口问题:默认情况下,Streamlit 会在8501端口运行。如果该端口被其他应用占用,你可以通过以下命令指定不同的端口:

    streamlit run app.py --server.port 8502
    
  • 防火墙设置:在某些操作系统上,防火墙设置可能会阻止应用访问网络。确保相关的端口在防火墙中被允许访问。

通过以上步骤和配置,你将能够顺利安装和运行 Streamlit,开启构建交互式数据应用的旅程。无论是简单的可视化展示,还是复杂的机器学习模型应用,Streamlit都将为你提供强有力的支持。

三、构建你的第一个 Streamlit 应用

在这一部分,我们将逐步构建一个简单的 Streamlit 应用。这个应用将展示如何使用 Streamlit 的基本组件,包括文本输入、按钮、数据可视化等。通过这个示例,你将能够了解 Streamlit 的工作流程和如何快速构建交互式的数据应用。

3.1 创建应用基础

首先,确保你已经安装了 Streamlit,并且在你的工作目录中创建一个新的 Python 文件,例如 app.py。在该文件中,我们将编写应用的基本结构。

3.1.1 应用结构

app.py 文件中添加以下代码:

import streamlit as st

# 应用标题
st.title("我的第一个 Streamlit 应用")

# 应用描述
st.write("这是一个简单的应用,演示如何使用 Streamlit 创建交互式界面。")

这段代码会在应用中显示标题和描述。接下来,我们将添加交互组件和可视化内容。

3.2 添加文本输入和按钮

为了让用户能够输入信息,我们可以使用文本输入框和按钮。用户输入的数据可以用来进行简单的动态计算或显示。

3.2.1 添加文本输入

app.py 中继续添加以下代码:

# 文本输入组件
name = st.text_input("请输入你的名字:")

这段代码会在应用中显示一个文本输入框,用户可以在这里输入他们的名字。

3.2.2 添加按钮和显示结果

接下来,我们添加一个按钮,并在用户点击时显示他们输入的名字:

# 按钮组件
if st.button("提交"):
    st.write(f"你好,{name}!欢迎使用 Streamlit 应用!")

完整的代码如下所示:

import streamlit as st

# 应用标题
st.title("我的第一个 Streamlit 应用")
st.write("这是一个简单的应用,演示如何使用 Streamlit 创建交互式界面。")

# 文本输入组件
name = st.text_input("请输入你的名字:")

# 按钮组件
if st.button("提交"):
    st.write(f"你好,{name}!欢迎使用 Streamlit 应用!")

3.3 添加数据可视化

为了使应用更具吸引力,我们可以加入一些数据可视化的内容。在这个示例中,我们将使用 Matplotlib 库绘制一个简单的曲线图。首先,确保你已经安装了 Matplotlib:

pip install matplotlib
3.3.1 绘制图表

app.py 中添加以下代码,以绘制一个正弦波图表:

import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图表
plt.figure(figsize=(10, 5))
plt.plot(x, y, label='正弦波', color='blue')
plt.title('正弦函数图')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.axhline(0, color='black', lw=1)
plt.axvline(0, color='black', lw=1)
plt.grid()
plt.legend()

# 在 Streamlit 中展示图表
st.pyplot(plt)
3.3.2 完整应用代码

到目前为止,你的 app.py 应该是这样的:

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt

# 应用标题
st.title("我的第一个 Streamlit 应用")
st.write("这是一个简单的应用,演示如何使用 Streamlit 创建交互式界面。")

# 文本输入组件
name = st.text_input("请输入你的名字:")

# 按钮组件
if st.button("提交"):
    st.write(f"你好,{name}!欢迎使用 Streamlit 应用!")

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图表
plt.figure(figsize=(10, 5))
plt.plot(x, y, label='正弦波', color='blue')
plt.title('正弦函数图')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.axhline(0, color='black', lw=1)
plt.axvline(0, color='black', lw=1)
plt.grid()
plt.legend()

# 在 Streamlit 中展示图表
st.pyplot(plt)

3.4 运行应用

在终端中运行以下命令以启动 Streamlit 应用:

streamlit run app.py

此时,默认浏览器将打开一个新窗口,你将看到应用界面。用户可以在文本框中输入他们的名字,点击“提交”按钮后,应用会显示个性化的欢迎信息。同时,正弦波图表将展示在下方。

3.5 进一步改进

至此,你已经成功构建了一个简单的 Streamlit 应用!在这个基础上,你可以尝试以下改进:

  • 添加更多的输入组件:例如滑块、下拉菜单等,以接收更多类型的用户输入。
  • 引入更多数据可视化类型:尝试使用 Plotly 或 Seaborn 库进行数据可视化,展示不同的图表。
  • 处理不同类型的数据:通过添加文件上传组件,允许用户上传自己的数据文件,并进行分析和可视化。
  • 实现更复杂的逻辑:结合数据处理库,如 Pandas,进行更复杂的数据分析和展示。

3.6 总结

通过本节的学习,你已经掌握了如何使用 Streamlit 构建一个简单的交互式应用。Streamlit 的简单性和强大功能使得它成为数据科学家和开发者展示数据和模型的优秀工具。在后续的学习中,你可以不断探索 Streamlit 的更多功能,开发出更复杂和实用的应用。

四、进阶使用

在掌握了 Streamlit 的基础用法后,我们可以进一步探索其进阶功能,以便构建更复杂和功能丰富的应用。在这一部分,我们将介绍一些 Streamlit 的高级特性,包括文件上传和下载、状态管理、以及如何优化应用的性能等。

4.1 文件上传与下载

Streamlit 支持用户上传文件和下载文件的功能,这使得用户可以与应用进行更深层次的交互。

4.1.1 文件上传

通过使用 st.file_uploader,用户可以轻松上传文件。我们可以处理不同类型的文件,例如 CSV、Excel 或图像文件。以下是一个示例代码,展示如何实现文件上传并读取 CSV 文件:

import pandas as pd
import streamlit as st

st.title("上传并显示 CSV 文件")

# 文件上传组件
uploaded_file = st.file_uploader("选择一个 CSV 文件", type="csv")

if uploaded_file is not None:
    # 读取 CSV 文件
    data = pd.read_csv(uploaded_file)
    st.write("上传的 CSV 文件内容:")
    st.dataframe(data)  # 显示 DataFrame

在这个示例中,用户可以上传一个 CSV 文件,应用会读取该文件并将其内容显示为 DataFrame。

4.1.2 文件下载

Streamlit 还支持文件的下载。用户可以通过按钮下载生成的文件,以下是一个简单的示例,展示如何创建一个 CSV 文件并提供下载链接:

import pandas as pd
import streamlit as st

# 创建一个示例 DataFrame
data = {'姓名': ['Alice', 'Bob', 'Charlie'], '年龄': [23, 30, 35]}
df = pd.DataFrame(data)

# 将 DataFrame 保存为 CSV 文件
csv = df.to_csv(index=False)

# 提供下载按钮
st.download_button(
    label="下载 CSV 文件",
    data=csv,
    file_name='data.csv',
    mime='text/csv'
)

在这个示例中,我们创建了一个简单的 DataFrame,并通过一个下载按钮允许用户下载该 DataFrame 的 CSV 文件。

4.2 状态管理

在多次交互过程中,应用中可能需要保留用户的状态信息。Streamlit 提供了 st.session_state 来存储会话状态。这样,用户在不同操作之间可以保持数据的连贯性。

4.2.1 使用会话状态

以下是一个示例,演示如何使用 st.session_state 来实现简单的计数器功能:

import streamlit as st

# 初始化计数器
if 'count' not in st.session_state:
    st.session_state.count = 0

# 创建按钮
if st.button("增加计数"):
    st.session_state.count += 1

# 显示当前计数
st.write(f"当前计数:{st.session_state.count}")

在这个示例中,我们使用 st.session_state 来存储和管理计数器的状态。每当用户点击按钮时,计数器的值会递增,且在页面刷新后仍然保持该值。

4.3 使用缓存优化性能

当应用处理大型数据集或进行复杂计算时,使用缓存可以显著提高性能。Streamlit 提供了 @st.cache 装饰器,可以将某些函数的结果缓存,以避免重复计算。

4.3.1 缓存示例

以下是一个简单的示例,演示如何使用缓存来提高数据加载的性能:

import streamlit as st
import pandas as pd

@st.cache
def load_data():
    # 模拟数据加载
    df = pd.read_csv("large_dataset.csv")
    return df

# 调用加载数据的函数
data = load_data()

st.write(data)

在这个示例中,load_data 函数通过 @st.cache 装饰器进行缓存,第一次调用时会加载数据,并在后续调用中直接返回已缓存的结果,从而提高加载速度。

4.4 自定义主题和布局

Streamlit 允许用户自定义应用的外观和布局,包括选择不同的主题和配置布局。

4.4.1 自定义主题

Streamlit 提供了一些内置的主题,可以通过 config.toml 文件进行配置。用户可以选择不同的配色方案、字体和其他视觉元素,以便更好地符合品牌或个人喜好。示例配置如下:

# .streamlit/config.toml
[theme]
primaryColor = "#F39C12"
backgroundColor = "#2C3E50"
secondaryBackgroundColor = "#34495E"
textColor = "#ECF0F1"

将该配置添加到 .streamlit/config.toml 文件中后,应用启动时将使用自定义的主题。

4.4.2 使用布局

Streamlit 还支持多种布局方式,如侧边栏、列布局等。以下是一个示例,展示如何使用侧边栏和列布局来组织页面:

import streamlit as st

st.sidebar.title("导航")
option = st.sidebar.selectbox("选择一个选项", ["主页", "信息", "设置"])

if option == "主页":
    st.write("欢迎来到主页!")
elif option == "信息":
    st.write("这里是一些信息内容。")
else:
    st.write("设置页面。")

在这个示例中,侧边栏允许用户选择不同的选项,从而动态展示不同的内容。

4.5 其他高级功能

Streamlit 还提供了许多其他高级功能,可以进一步增强应用的功能性和用户体验。例如:

  • 多页面应用:通过创建多个 Python 文件,可以将应用组织为多页面结构,方便用户导航。
  • 实时数据更新:利用 Streamlit 的st.cachest.experimental_rerun功能,可以实现自动刷新和实时数据更新。
  • 集成外部 API:通过调用外部 API,Streamlit 应用可以获取实时数据,进一步增强功能。

4.6 总结

在这一部分中,我们深入探讨了 Streamlit 的进阶用法,包括文件上传与下载、状态管理、性能优化、自定义主题和布局等功能。这些功能使得 Streamlit 应用不仅能够处理复杂的数据交互,还能提供良好的用户体验。掌握这些高级特性后,你将能够创建更为复杂且功能丰富的应用,充分发挥 Streamlit 的潜力。通过不断探索和实践,你将可以构建出创新且强大的数据应用,满足各类需求。

五、Streamlit最佳实践

在使用 Streamlit 构建应用时,遵循一些最佳实践可以帮助你提高应用性能、可维护性和用户体验。以下是一些建议,旨在帮助你更高效地使用 Streamlit。

5.1 组织代码结构

  1. 模块化设计:将应用的不同功能模块分离,使用多个 Python 文件组织代码。可以创建一个主文件来管理布局和导航,同时将数据处理、可视化和其他功能分散到独立的模块中。这种做法不仅提升了代码的可读性,还方便协作开发。

    例如,可以将数据加载和处理逻辑放在 data.py 中,而将可视化逻辑放在 visuals.py 中,主应用文件 app.py 则负责整合这些模块。

  2. 使用函数封装逻辑:将重复使用的代码逻辑封装为函数,减少代码重复,提高可重用性。尽量避免在主应用文件中写过多逻辑,这样可以保持代码的整洁性。

5.2 提高应用性能

  1. 利用缓存:使用 @st.cache 装饰器缓存数据加载和计算结果,避免不必要的重复操作。这在数据量大、计算复杂时尤其重要,可以显著提高应用响应速度。

  2. 限制数据量:在展示数据时,尽量控制数据量,避免一次性加载过多数据。可以通过分页或筛选功能让用户自定义查看的数据量,提升用户体验。

  3. 异步加载:对于需要长时间计算或加载外部数据的操作,可以考虑使用 Streamlit 的异步功能,避免阻塞主线程。

5.3 用户界面和体验

  1. 清晰的导航:如果应用有多个功能或页面,确保用户能方便地在不同功能间导航。可以使用侧边栏、标签页或面包屑导航等方式,提升用户的使用体验。

  2. 适当的反馈:针对用户的操作提供实时反馈,例如在文件上传、数据计算等操作时显示加载动画或提示信息,让用户了解当前操作状态。

  3. 自定义主题:通过使用 .streamlit/config.toml 文件自定义应用主题,使得应用在视觉上更加吸引人,也能与品牌形象保持一致。

5.4 安全与权限管理

  1. 数据隐私:确保用户上传的数据不会被恶意使用,避免在应用中存储敏感信息。可以考虑对用户输入的数据进行验证和清理,确保应用的安全性。

  2. 权限控制:如果应用需要限制某些功能或数据的访问,可以通过用户身份验证机制来管理用户权限,确保数据安全。

5.5 定期更新与维护

  1. 文档与注释:为代码添加注释,编写文档,说明应用的功能和使用方法。这对于后续的维护和其他开发者的理解都非常重要。

  2. 定期更新依赖:定期检查和更新应用的依赖库,确保使用最新的版本以获得更好的性能和安全性。

六、总结

Streamlit 是一个强大的工具,可以帮助数据科学家和开发者快速构建交互式数据应用。在本文中,我们详细探讨了 Streamlit 的基础用法、进阶功能、最佳实践和应用开发过程中需要注意的事项。

6.1 主要内容回顾

  • 入门概述:Streamlit 的设计目标是简化数据应用的开发,使得数据科学家能够更专注于数据分析而无需深入学习前端技术。
  • 构建第一个应用:通过简单的实例,我们演示了如何创建一个基本的 Streamlit 应用,并展示了如何添加交互组件和数据可视化。
  • 进阶功能:我们探讨了文件上传与下载、状态管理、性能优化等功能,这些特性使得 Streamlit 应用更加灵活和强大。
  • 最佳实践:通过遵循代码组织、性能优化、用户体验、安全性和维护性等最佳实践,可以提高应用的质量和可用性。

6.2 未来展望

随着数据科学和机器学习的不断发展,Streamlit 作为一个开源项目,未来将会有更多的功能和优化推出。保持对 Streamlit 和其社区动态的关注,可以帮助你及时掌握新技术和新特性。同时,鼓励你在实际项目中不断实践和探索,利用 Streamlit 的强大能力,构建出创新且有价值的数据应用。

总的来说,通过本篇文章的学习,希望你能对 Streamlit 有一个全面的认识,掌握其基本和进阶用法,从而在实际工作中得心应手地使用这一工具,推动数据科学项目的成功实施。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉】CV实战项目- 深度解析FaceAI:一款全能的人脸检测与图像处理工具库

深度解析FaceAI:一款全能的人脸检测与图像处理工具库 项目概述核心功能与技术实现1. 人脸检测与识别2. 数字化妆与轮廓标识3. 性别与表情识别4. 高级图像处理 实战指南:项目运行与开发环境配置典型应用示例常见问题与解决方案 学术背景与相关研究项目扩展…

Cephalon端脑云:神经形态计算+边缘AI·重定义云端算力

前引:当算力不再是“奢侈品” ,在人工智能、3D渲染、科学计算等领域,算力一直是横亘在个人与企业面前的“高墙”。高性能服务器价格动辄数十万元,专业设备维护成本高,普通人大多是望而却步。然而,Cephalon算…

Redis的过期删除策略和内存淘汰策略

🤔 过期删除和内存淘汰乍一看很像,都是做删除操作的,这么分有什么意思? 首先,设置过期时间我们很熟悉,过期时间到了,我么的键就会被删除掉,这就是我们常认识的过期删除,…

MySQL:数据库设计

目录 一、范式 二、第一范式 二、第二范式 三、第三范式 四、设计 (1)一对一关系 (2)一对多关系 (3)多对多关系 一、范式 数据库的范式是一种规则(规范),如果我们…

synchronized关键字的实现

Java对象结构 synchronized锁升级过程 为了优化synchronized锁的效率,在JDK6中,HotSpot虚拟机开发团队提出了锁升级的概念,包括偏向锁、轻量级锁、重量级锁等,锁升级指的就是“无锁 --> 偏向锁 --> 轻量级锁 --> 重量级…

opencv 图像的旋转

图像的旋转 1 单点旋转2. 图片旋转(cv2.getRotationMatrix2D)3. 插值方法3.1 最近邻插值(cv2.INTER_NEAREST)3.2 双线性插值(cv2.INTER_LINEAR)3.3 像素区域插值(cv2.INTER_AREA)3.4 双三次插值(cv2.INTER_CUBIC&#…

【多线程】线程互斥 互斥量操作 守卫锁 重入与线程安全

文章目录 Ⅰ. 线程互斥概念Ⅱ. 互斥锁的概念Ⅲ. 互斥锁的接口一、互斥锁的定义二、初始化互斥锁三、销毁互斥锁四、互斥量的加锁和解锁① 加锁接口② 解锁接口五、改进买票系统💥注意事项Ⅳ. 互斥锁的实现原理一、问题引入二、复习知识三、实现原理Ⅴ. 封装锁对象 &&…

空闲列表:回收和再利用

空闲列表:回收和再利用 手动与自动内存管理 手动管理:程序员需要明确地分配和释放内存。自动管理:例如使用垃圾收集器(GC),它能够自动检测并回收未使用的对象,不需要程序员干预。 对于某些数据结构如B树,…

计算机组成与体系结构:直接内存映射(Direct Memory Mapping)

目录 CPU地址怎么找到真实的数据? 内存映射的基本单位和结构 1. Pages(页)——虚拟地址空间的基本单位 2. Frames(页框)——物理内存空间的基本单位 3. Blocks(块)——主存和缓存之间的数据…

STM32提高篇: 蓝牙通讯

STM32提高篇: 蓝牙通讯 一.蓝牙通讯介绍1.蓝牙技术类型 二.蓝牙协议栈1.蓝牙芯片架构2.BLE低功耗蓝牙协议栈框架 三.ESP32-C3中的蓝牙功能1.广播2.扫描3.通讯 四.发送和接收 一.蓝牙通讯介绍 蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技…

SpringMVC处理请求映射路径和接收参数

目录 springmvc处理请求映射路径 案例:访问 OrderController类的pirntUser方法报错:java.lang.IllegalStateException:映射不明确 核心错误信息 springmvc接收参数 一 ,常见的字符串和数字类型的参数接收方式 1.1 请求路径的…

【程序员 NLP 入门】词嵌入 - 上下文中的窗口大小是什么意思? (★小白必会版★)

🌟 嗨,你好,我是 青松 ! 🌈 希望用我的经验,让“程序猿”的AI学习之路走的更容易些,若我的经验能为你前行的道路增添一丝轻松,我将倍感荣幸!共勉~ 【程序员 NLP 入门】词…

从物理到预测:数据驱动的深度学习的结构化探索及AI推理

在当今科学探索的时代,理解的前沿不再仅仅存在于我们书写的方程式中,也存在于我们收集的数据和构建的模型中。在物理学和机器学习的交汇处,一个快速发展的领域正在兴起,它不仅观察宇宙,更是在学习宇宙。 AI推理 我们…

大模型AI的“双刃剑“:数据安全与可靠性挑战与破局之道

在数字经济蓬勃发展的浪潮中,数据要素已然成为驱动经济社会创新发展的核心引擎。从智能制造到智慧城市,从电子商务到金融科技,数据要素的深度融合与广泛应用,正以前所未有的力量重塑着产业格局与经济形态。 然而,随着…

操作系统概述与安装

主流操作系统概述 信创平台概述 虚拟机软件介绍与安装 windows server 安装 centos7 安装 银河麒麟V10 安装 一:主流服务器操作系统 (1)Windows Server 发展历程: 1993年推出第一代 WindowsNT(企业级内核&am…

开发了一个b站视频音频提取器

B站资源提取器-说明书 一、功能说明 本程序可自动解密并提取B站客户端缓存的视频资源,支持以下功能: - 自动识别视频缓存目录 - 将加密的.m4s音频文件转换为标准MP3格式 - 将加密的.m4s视频文件转换为标准MP4格式(合并音视频流)…

基于javaweb的SpringBoot校园服务平台系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

PHYBench:首个大规模物理场景下的复杂推理能力评估基准

2025-04-23, 由北京大学物理学院和人工智能研究所等机构共同创建的 PHYBench 数据集,这是一个专门用于评估大型语言模型在物理场景下的复杂推理能力的高质量基准。该数据集包含 500 道精心策划的物理问题,覆盖力学、电磁学、热力学、光学、现代物理和高级…

Red:1靶场环境部署及其渗透测试笔记(Vulnhub )

环境介绍: 靶机下载: https://download.vulnhub.com/red/Red.ova 本次实验的环境需要用到VirtualBox(桥接网卡),VMware(桥接网卡)两台虚拟机(网段都在192.168.152.0/24&#xff0…

深入详解人工智能数学基础——概率论中的KL散度在变分自编码器中的应用

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…