aksharetools:大模型智能体框架agno可直接获取A股金融数据
原创内容第889篇,专注智能量化投资、个人成长与财富自由。
今天说说金融智能体开发。
智能体开发需要一个多agent框架。这样的框架,现在太多了,langchain, langgraph,autogen,crewai等等,还有各种低代码平台。
我找到一个轻量级的多模态的智能体框架平台:Agno。
使用akshare封装成函数集:AShareTools,这样对大模型直接提问:
from agno.agent import Agent
from agno.tools.yfinance import YFinanceTools
from akshare_tools import AShareTools
from utils import get_model
agent = Agent(model=get_model(name='qwen'),
tools=[AShareTools(enable_all=True)],
instructions=[
"Use tables to display data.",
"Only include the table in your response. No other text.",
],
debug_mode=False,
)
# Getting chunks in a variable
run_response = agent.run("获取sz000001,sh600519的最新股价", stream=True)
for chunk in run_response:
for char in chunk.content:
print(char, end='', flush=True) # 关键参数:end=''取消换行,flush=True立即刷新
#time.sleep(0.05) # 调整这个值控制打字速度(单位:秒)
import json
from datetime import datetime, timedelta
import pandas as pd
import akshare as ak
from agno.tools import Toolkit
from agno.utils.log import log_debug
class AShareTools(Toolkit):
"""
AShareTools is a toolkit for getting financial data from A-share markets using akshare.
Note: Symbols should include market prefix (e.g., sh600000 for Shanghai, sz000001 for Shenzhen).
Args:
stock_price (bool): Whether to get the current stock price.
company_info (bool): Whether to get company information.
stock_fundamentals (bool): Whether to get stock fundamentals.
income_statements (bool): Whether to get income statements.
key_financial_ratios (bool): Whether to get key financial ratios.
analyst_recommendations (bool): Whether to get analyst recommendations.
company_news (bool): Whether to get company news.
technical_indicators (bool): Whether to get technical indicators.
historical_prices (bool): Whether to get historical prices.
enable_all (bool): Whether to enable all tools.
"""
def __init__(
self,
stock_price: bool = True,
company_info: bool = False,
stock_fundamentals: bool = False,
income_statements: bool = False,
key_financial_ratios: bool = False,
analyst_recommendations: bool = False,
company_news: bool = False,
technical_indicators: bool = False,
historical_prices: bool = False,
enable_all: bool = False,
**kwargs,
):
super().__init__(name="ashare_tools", **kwargs)
if stock_price or enable_all:
self.register(self.get_current_stock_price)
if company_info or enable_all:
self.register(self.get_company_info)
if stock_fundamentals or enable_all:
self.register(self.get_stock_fundamentals)
if income_statements or enable_all:
self.register(self.get_income_statements)
if key_financial_ratios or enable_all:
self.register(self.get_key_financial_ratios)
if analyst_recommendations or enable_all:
self.register(self.get_analyst_recommendations)
if company_news or enable_all:
self.register(self.get_company_news)
if technical_indicators or enable_all:
self.register(self.get_technical_indicators)
if historical_prices or enable_all:
self.register(self.get_historical_stock_prices)
def get_current_stock_price(self, symbol: str) -> str:
code = symbol[2:]
"""
Get the current stock price for a given A-share symbol.
Args:
symbol (str): The stock symbol with market prefix (e.g., sh600000).
Returns:
str: Current price formatted to 4 decimal places or error message.
"""
try:
log_debug(f"Fetching current price for {symbol}")
# Get all A-share spot data and filter by symbol
df = ak.stock_zh_a_spot_em()
#print(df)
sub = df[df['代码'] == code]['最新价']
#print(sub)
current_price = sub.values[0]
#print(current_price)
return f"{current_price:.4f}" if current_price else f"Could not fetch price for {symbol}"
except Exception as e:
return f"Error fetching current price for {symbol}: {e}"
def get_company_info(self, symbol: str) -> str:
"""
Get company information for a given A-share symbol.
Args:
symbol (str): The stock symbol with market prefix.
Returns:
str: JSON containing company profile.
"""
try:
code = symbol[2:] # Remove market prefix
info_df = ak.stock_individual_info_em(symbol=code)
info = dict(zip(info_df['item'], info_df['value']))
# Get real-time price separately
price_df = ak.stock_zh_a_spot_em()
price_data = price_df[price_df['代码'] == symbol].iloc[0]
company_info = {
"Name": info.get('公司名称', 'N/A'),
"Symbol": symbol,
"Current Price": f"{price_data['最新价']} CNY",
"Sector": info.get('所属行业', 'N/A'),
"Industry": info.get('行业分类', 'N/A'),
"Market Cap": f"{price_data['总市值']} CNY",
"PE Ratio": info.get('市盈率', 'N/A'),
"EPS": info.get('每股收益', 'N/A'),
"Website": info.get('公司主页', 'N/A'),
"Business Scope": info.get('经营范围', 'N/A')
}
return json.dumps(company_info, indent=2, ensure_ascii=False)
except Exception as e:
return f"Error fetching company info for {symbol}: {e}"
def get_historical_stock_prices(self, symbol: str, period: str = "1mo", interval: str = "1d") -> str:
"""
Get historical prices for a given A-share symbol.
Args:
symbol (str): Stock symbol with market prefix.
period (str): Historical period (1d, 1mo, etc.).
interval (str): Data interval (not fully implemented for akshare).
Returns:
str: JSON formatted historical data.
"""
try:
log_debug(f"Fetching historical prices for {symbol}")
code = symbol[2:]
# Convert period to start/end dates
end_date = datetime.now().strftime("%Y%m%d")
period_map = {
"1d": 1, "5d": 5, "1mo": 30,
"3mo": 90, "6mo": 180, "1y": 365
}
start_date = (datetime.now() - timedelta(days=period_map.get(period, 30))).strftime("%Y%m%d")
df = ak.stock_zh_a_daily(symbol=code, start_date=start_date, end_date=end_date, adjust="qfq")
return df[['日期', '开盘', '收盘', '最高', '最低', '成交量']].to_json(orient="records")
except Exception as e:
return f"Error fetching historical prices for {symbol}: {e}"
def get_stock_fundamentals(self, symbol: str) -> str:
"""
Get fundamental data for a given A-share symbol.
Args:
symbol (str): Stock symbol with market prefix.
Returns:
str: JSON formatted fundamental data.
"""
try:
code = symbol[2:]
indicator_df = ak.stock_a_lg_indicator(stock=code)
latest = indicator_df.iloc[-1].to_dict()
fundamentals = {
"symbol": symbol,
"PE Ratio": latest.get('市盈率'),
"PB Ratio": latest.get('市净率'),
"Dividend Yield": latest.get('股息率'),
"ROE": latest.get('净资产收益率'),
"Total Market Cap (CNY)": latest.get('总市值')
}
return json.dumps(fundamentals, indent=2, ensure_ascii=False)
except Exception as e:
return f"Error getting fundamentals for {symbol}: {e}"
def get_income_statements(self, symbol: str) -> str:
"""
Get income statements for a given A-share symbol.
Args:
symbol (str): Stock symbol with market prefix.
Returns:
str: JSON formatted income statements.
"""
try:
code = symbol[2:]
df = ak.stock_financial_report_sina(stock=code, symbol="利润表")
return df.to_json(orient="records")
except Exception as e:
return f"Error fetching income statements for {symbol}: {e}"
def get_key_financial_ratios(self, symbol: str) -> str:
"""
Get key financial ratios for a given A-share symbol.
Args:
symbol (str): Stock symbol with market prefix.
Returns:
str: JSON formatted financial ratios.
"""
try:
code = symbol[2:]
df = ak.stock_financial_analysis_indicator(symbol=code)
return df.to_json(orient="records")
except Exception as e:
return f"Error fetching financial ratios for {symbol}: {e}"
def get_analyst_recommendations(self, symbol: str) -> str:
"""
Get analyst recommendations (placeholder - akshare lacks direct equivalent).
Args:
symbol (str): Stock symbol.
Returns:
str: JSON formatted message.
"""
return json.dumps({"info": "Analyst recommendations not available via akshare"}, indent=2)
def get_company_news(self, symbol: str, num_stories: int = 3) -> str:
"""
Get company news for a given A-share symbol.
Args:
symbol (str): Stock symbol.
num_stories (int): Number of news items to return.
Returns:
str: JSON formatted news items.
"""
try:
code = symbol[2:]
news_df = ak.stock_news_em(symbol=code)
return news_df.head(num_stories).to_json(orient="records")
except Exception as e:
return f"Error fetching news for {symbol}: {e}"
def get_technical_indicators(self, symbol: str, period: str = "3mo") -> str:
"""
Get technical indicators for a given A-share symbol.
Args:
symbol (str): Stock symbol.
period (str): Historical period.
Returns:
str: JSON formatted technical data.
"""
try:
code = symbol[2:]
df = ak.stock_zh_a_daily(symbol=code, period=period, adjust="qfq")
return df[['日期', '收盘', '成交量', 'MA5', 'MA10', 'MA20']].to_json(orient="records")
except Exception as e:
return f"Error fetching technical indicators for {symbol}: {e}"
AGI相关的代码在AGI星球更新:
昨天咱们更新了aitrader_core的1.1版本:年化收益226.9%,最大回撤12.7%,本地运行toml策略,aitrader核心代码发布(python代码+数据下载)
有些同学问,与完全开源的aitrader框架版本的区别?这里做一下说明:框架版本基于wxpython做智能量化平台的gui,回测数据和引擎都是通过api在服务器上完成。
涉及到回测引擎(因子表达式,deap因子挖掘,机器学习建模以及回测引擎等核心代码,每周五在星球更新)
星球部分策略,设定了需要积分才能下载。这个积分是给策略的作者。
如何获得积分?
1、用户加入星球,并绑定会员之后,会获得20积分。每次续费再新增20积分。
3、发布策略,设定“积分查看”,其他同学下载后,积分归作者所有。
3、在论坛发布高质量的贴子即可(可获5,10,15,20等积分)。
4、给同学提供高质量的答案。
比如今天新发布的两个策略:
代码和策略下载:AI量化实验室——2025量化投资的星辰大海
扩展 • 历史文章
EarnMore(赚得更多)基于RL的投资组合管理框架:一致的股票表示,可定制股票池管理。(附论文+代码)
年化收益200%+的策略集 | 实时板块资金热力图 「aitrader 5.0系统代码发布」
机器学习驱动的策略开发通过流程 | 普通人阶层跃迁的可能路径?
年化30.24%,最大回撤19%,综合动量多因子评分策略再升级(python代码+数据)
三秒钟创建一个年化28%,夏普比1.25的策略(python系统已开放源代码下载)
会员专属策略可以直接下载了,多个十年年化30+%策略集|polars重构因子引擎(代码+数据下载)
6年年化收益46%,最大回撤率为16%的策略(附python代码)
相关文章:
aksharetools:大模型智能体框架agno可直接获取A股金融数据
原创内容第889篇,专注智能量化投资、个人成长与财富自由。 今天说说金融智能体开发。 智能体开发需要一个多agent框架。这样的框架,现在太多了,langchain, langgraph,autogen,crewai等等,还有各种低代码平…...
使用Maven部署WebLogic应用
使用Maven部署WebLogic应用 在Maven项目中部署应用到WebLogic服务器可以通过以下几种方式实现: 1. 使用WebLogic Maven插件 (官方推荐) Oracle提供了官方的WebLogic Maven插件,这是最直接的部署方式。 基本配置 <build><plugins><pl…...
[Java][Leetcode simple] 13. 罗马数字转整数
一、自己想的 只有提到的六种情况是-,其他都是 public int romanToInt1(String s) {int res 0;int n s.length();Map<Character, Integer> map new HashMap<>();map.put(I, 1);map.put(V, 5);map.put(X, 10);map.put(L, 50);map.put(C, 100);map.pu…...
【论文阅读】针对BEV感知的攻击
Understanding the Robustness of 3D Object Detection with Bird’s-Eye-View Representations in Autonomous Driving 这篇文章是发表在CVPR上的一篇文章,针对基于BEV的目标检测算法进行了两类可靠性分析,即恶劣自然条件以及敌对攻击。同时也提出了一…...
Ansible模块——设置软件仓库和安装软件包
设置软件仓库 ansible.builtin.rpm_key ansible.builtin.rpm_key 用于在 Fedora/RHEL 上导入或移除 GPG 公钥。 参数名 类型 默认值 说明 fingerprintstrnull 指定公钥的完整指纹(long-form)。在导入前会比对公钥是否匹配此指纹,增强安全…...
基于CentOS7制作OpenSSL 1.1的RPM包
背景:CentOS7 已经不再维护了,有时候需要升级某些组件,网上却没有相关的资源了。尤其是制作OpenSSH 9.6 的RPM包,就会要求OpenSSL为1.1的版本。基于此,还是自己制作吧,以下是踩坑过程。 1、官网提供的源码包…...
【Element UI】表单及其验证规则详细
Form表单 Form表单验证1. 使用方法2. rule参数3. validator回调函数异步服务器验证 Form表单验证 Form组件提供了表单验证的功能,需要通过rules属性传入约定的验证规则,并将Form-Item的prop属性设置为需校验的字段名 1. 使用方法 结构: &…...
使用 Python 打造一个强大的文件系统结构创建器
本文将深入分析一个基于 wxPython 的文件系统结构创建器程序,展示如何通过 CustomTreeCtrl 组件实现文件夹和文件的可视化管理,并提供添加、删除、导入、清空以及创建文件系统结构的强大功能。这个程序不仅适合开发者快速构建文件系统原型,还…...
面试真题 - 高并发场景下Nginx如何优化
Nginx是一款高性能的Web服务器和反向代理服务器,以其轻量级、高并发处理能力和稳定性闻名。在面对高并发场景时,合理的配置与优化策略至关重要,以确保服务的稳定性和响应速度。 以下是针对Nginx进行高并发优化的一些关键配置和策略ÿ…...
学习笔记:黑马程序员JavaWeb开发教程(2025.4.6)
12.4 登录校验-JWT令牌-介绍 JWT(JSON Web Token) 简洁是指JWT是一个简单字符串,自包含指的是JWT令牌,看似是一个随机字符串,但是可以根据需要,自定义存储内容 Header是JSON数据格式,原始JSO…...
机器学习——逻辑回归
一、逻辑回归概念点 逻辑回归(Logistic Regression)是一种广泛使用的统计分析方法和机器学习算法,主要用于处理二分类问题(即因变量为二元类别,如0和1、是和否等)。尽管名字中有“回归”二字,但…...
服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
现在,假设我们有一个新的order-service,它在创建订单时需要获取用户信息。 如果order-service直接硬编码user-service的IP和端口进行调用,会面临以下问题: 缺乏弹性: 如果user-service实例的IP或端口发生变化(在云环境…...
蓝桥杯11届国B 答疑
题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序,同学们要依次进入老师办公室答疑。 一位同学答疑的过程如下: 首先进入办公室,编号为 i 的同学需要 si 毫秒的时间。然后同学问问题老…...
【单机版OCR】清华TH-OCR v9.0免费版
今天向大家介绍一款非常好用的单机版OCR图文识别软件,它不仅功能多,识别能力强,而且还是免费使用的。OCR软件为什么要使用单机版,懂得都懂,因为如果使用在线识别的OCR软件,用户需要将文档上传互联网服务器的…...
蓝牙耳机什么牌子好?倍思值得冲不?
最近总被问“蓝牙耳机什么牌子好”,作为踩过无数坑的资深耳机党,必须安利刚入手的倍思M2s Pro主动降噪蓝牙耳机!降噪、音质、颜值全都在线,性价比直接拉满。 -52dB降噪,通勤摸鱼神器 第一次开降噪就被惊到!…...
Java卡与SSE技术融合实现企业级安全实时通讯
简介 在数字化转型浪潮中,安全与实时数据传输已成为金融、物联网等高安全性领域的核心需求。本文将深入剖析东信和平的Java卡权限分级控制技术与浪潮云基于SSE的大模型数据推送技术,探索如何将这两项创新技术进行融合,构建企业级安全实时通讯系统。通过从零到一的开发步骤,…...
使用Spring Boot和Spring Security构建安全的RESTful API
使用Spring Boot和Spring Security构建安全的RESTful API 引言 在现代Web开发中,安全性是构建应用程序时不可忽视的重要方面。本文将介绍如何使用Spring Boot和Spring Security框架构建一个安全的RESTful API,并结合JWT(JSON Web Token&…...
Win11下轻松搭建wiki.js,Docker.desktop部署指南(mysql+elasticsearch+kibana+wiki.js)
Docker.desktop部署wiki.js指南 前言环境和要求介绍提前准备 1. elasticsearch1.1 部署容器1.2 参数说明1.3 验证容器是否部署成功 2. kibana2.1 部署容器2.2 验证是否部署成功2.3 安装IK分词器 3. MySql3.1 部署容器3.2 增加数据库和wiki.js所需要的账号 4. wiki.js4.1 部署容…...
【JavaWeb】MySQL
1 引言 1.1 为什么学? 在学习SpringBootWeb基础知识(IOC、DI等)时,在web开发中,为了应用程序职责单一,方便维护,一般将web应用程序分为三层,即:Controller、Service、Dao 。 之前的案例中&am…...
数据库实验报告 数据定义操作 3
实验报告(第3次) 实验名称 数据定义操作 实验时间 10月12日1-2节 一、实验内容 1、本次实验是用sql语句创建库和表,语句是固定的,要求熟记这些sql语句。 二、源程序及主…...
寻找树的中心(重心)
题目: 思路: “剥洋葱”:每次剥掉一层叶子结点,直到最后剩余不多于2个节点,这些节点就是树的中心(重心)。 解释: 1、根据图论的知识可以知道,一颗树的中心(…...
Oracle 高水位线(High Water Mark, HWM)
1. 高水位线(HWM)的定义 基本概念:HWM 是 Oracle 数据库中一个段(如表、索引)中已分配并被格式化(Formatted)的存储空间的最高位置。它标识了该段历史上曾达到的最大数据块使用量。 物理意义&a…...
Redis学习专题(二)事务和锁机制
目录 引言 1、事务三特性 2、事务相关指令 :Multi、Exec、discard 快速入门 注意: 3、事务冲突 解决办法: 1.悲观锁 2.乐观锁 3.watch & unwatch 引言 Redis 的事务是什么? 1、Redis 事务是一个单独的隔离操作:事…...
多平台!像素艺术的最佳选择 , 开源像素画工具
项目简介 如果你喜欢作像素风格的游戏或动画,那么这款Pixelorama或许是你的好帮手。它是一款免费开源的像素画编辑器,功能丰富,操作便捷,支持多平台使用(Windows、macOS、Linux)。无论你是像素新手还是老手…...
使用 Kotlin 和 Jetpack Compose 开发 Wear OS 应用的完整指南
环境配置与项目搭建 1. Gradle 依赖配置 // build.gradle (Module) android {buildFeatures {compose true}composeOptions {kotlinCompilerExtensionVersion "1.5.3"} }dependencies {def wear_compose_version "1.2.0"implementation "androidx.…...
JavaScript【5】DOM模型
1.概述: DOM (Document Object Model):当页面被加载时,浏览器会创建页面的文档对象模型,即dom对象;dom对象会被结构化为对象树,如一个HTML文档会被分为head,body等部分,而每个部分又…...
【诊所电子处方专用软件】佳易王个体诊所门诊电子处方开单管理系统:零售药店电子处方服务系统#操作简单#诊所软件教程#药房划价
一、软件试用版资源文件下载说明 (一)若您想体验软件功能,可通过以下方式获取软件试用版资源文件: 访问头像主页:进入作者头像主页,找到第一篇文章,点击文章最后的卡片按钮,即可了…...
【OpenCV】帧差法、级联分类器、透视变换
一、帧差法(移动目标识别): 好处:开销小,不怎么消耗CPU的算力,对硬件要求不高,但只适合固定摄像头 1、优点 计算效率高,硬件要求 响应速度快,实时性强 直接利用连续帧…...
OpenCV 特征检测全面解析与实战应用
在计算机视觉领域,特征检测是从图像中提取关键信息的核心技术,这些关键特征是图像匹配、目标识别、场景理解等复杂任务的基础。OpenCV 作为计算机视觉领域最受欢迎的开源库之一,提供了丰富且高效的特征检测算法。本文将深入介绍 OpenCV 中多种…...
AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月17日第80弹
从今天开始,咱们还是暂时基于旧的模型进行预测,好了,废话不多说,按照老办法,重点8-9码定位,配合三胆下1或下2,杀1-2个和尾,再杀6-8个和值,可以做到100-300注左右。 (1)定…...
IDEA反斜杠路径不会显示JUnit运行的工作目录配置问题
1. 当在IDEA基准目录下创建junit-reflect-annotation-proxy-app\\src\\data.txt时,如果是Mac电脑,这种\\文件路径时,IDEA里面不会显示,但在Finder下会显示,是直接创建了文件名为junit-reflect-annotation-proxy-app\sr…...
Linux517 rsync同步 rsync借xinetd托管 配置yum源回顾
计划测试下定时服务 同步成功 是否为本地YUM源内容太少?考虑网络YUM源 单词拼错了 计划后面再看下 MX安装 参考 计划回顾配置YUM源 配置本地YUM源配置外网YUM源配置仓库YUM源(不熟) 参考 参考阿里云 配置完毕 本地yum源配置 先备份 再…...
【论文阅读】A Survey on Multimodal Large Language Models
目录 前言一、 背景与核心概念1-1、多模态大语言模型(MLLMs)的定义 二、MLLMs的架构设计2-1、三大核心模块2-2、架构优化趋势 三、训练策略与数据3-1、 三阶段训练流程 四、 评估方法4-1、 闭集评估(Closed-set)4-2、开集评估&…...
大型语言模型中的QKV与多头注意力机制解析
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
React Flow 节点事件处理实战:鼠标 / 键盘事件全解析(含节点交互代码示例)
本文为《React Agent:从零开始构建 AI 智能体》专栏系列文章。 专栏地址:https://blog.csdn.net/suiyingy/category_12933485.html。项目地址:https://gitee.com/fgai/react-agent(含完整代码示例与实战源)。完整介绍…...
AIGC在电商行业的应用:革新零售体验
AIGC在电商行业的应用:革新零售体验 引言 人工智能生成内容(AIGC)正在深刻改变电商行业的格局。从个性化推荐到智能客服,从产品描述生成到虚拟试衣,AIGC技术正在为电商平台带来前所未有的创新和效率提升。本文将深入探…...
【数据结构】线性表--队列
【数据结构】线性表--队列 一.什么是队列二.队列的实现1.队列结构定义:2.队列初始化函数:3.队列销毁函数:4.入队列函数(尾插):5.出队列函数(头删):6.取队头元素ÿ…...
CSS- 4.1 浮动(Float)
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。 HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看! 点…...
Node.js 源码架构详解
Node.js 的源码是一个庞大且复杂的项目,它主要由 C 和 JavaScript 构成。要完全理解每一部分需要大量的时间和精力。我会给你一个高层次的概述,并指出一些关键的目录和组件,帮助你开始探索。 Node.js 的核心架构 Node.js 的核心可以概括为以…...
OpenCV级联分类器
概念 OpenCV 级联分类器是一种基于 Haar 特征、AdaBoost 算法和级联结构的目标检测方法,通过多阶段筛选快速排除非目标区域,实现高效实时检测(如人脸、行人等)。 加载级联分类器 // 加载级联分类器CascadeClassifier cascade;// …...
远程主机状态监控-GPU服务器状态监控-深度学习服务器状态监控
远程主机状态监控-GPU服务器状态监控-深度学习服务器状态监控 ⭐️ 推荐文章: DockerPyCharm远程调试&环境隔离解决方案 1. 整体架构 在本监控系统中,我们采用了Prometheus作为核心监控解决方案,并结合Node Exporter和Grafana构建了一个完整的监控体…...
谈谈未来iOS越狱或巨魔是否会消失
2024年10月的预测,先说结论: 巨魔iOS17.1消失概率为99%。 因为巨魔强依赖的漏洞就是一个签名漏洞,攻击面有限又经过2轮修复,第3次出现漏洞的概率极低。而越狱的话由于系统组件和服务较多,所以出现漏洞概率高攻击面多&…...
【OpenGL学习】(二)OpenGL渲染简单图形
文章目录 【OpenGL学习】(二)OpenGL渲染简单图形OpenGL渲染图形流程顶点,图元和片元VAO,VBO ,EBO着色器示例:使用OpenGL渲染三角形 【OpenGL学习】(二)OpenGL渲染简单图形 OpenGL渲…...
学习深度学习是否要先学习机器学习?
有小伙伴问我,最近做毕设要做一个神经网络的课题,想请教一下需不需要把机器学习也都学习一遍? 永远正确的回答是:建议先学机器学习,再学深度学习。 上面那句你从哪都挑不出毛病,毕竟机器学习是深度学习的基…...
六、绘制图片
文章目录 1.创建一个红色图片2.加载bmp图片3.加载png、jpg图片 前面的几个示例,我们已经展示过如果在Linux系统下使用xlib接口向窗口中绘制文本、线、矩形;并设置文本、线条的颜色。并利用xlib提供的接口结合事件处理机制完成了一个自绘按钮控件功能。有…...
【OpenCV】基本数据类型及常见图像模式
是什么?能做什么?解决什么问题?为什么用它? OpenCV:是一个基于开源发行的跨平台计算机视觉库,实现 一、应用场景: 目标识别:人脸、车辆、车牌...自动驾驶医学影像分析视频内容理解与分析&…...
C# WPF .NET Core和.NET5之后引用System.Windows.Forms的解决方案
双击项目名称打开工程文件(.csporj)添加“Microsoft.WindowsDesktop.App.WindowsForms”引用; <Project Sdk"Microsoft.NET.Sdk"><PropertyGroup><OutputType>WinExe</OutputType><TargetFramework&g…...
Mysql 8.0.32 union all 创建视图后中文模糊查询失效
记录问题,最近在使用union all聚合了三张表的数据,创建视图作为查询主表,发现字段值为中文的筛选无法生效.......... sql示例: CREATE OR REPLACE VIEW test_view AS SELECTid,name,location_address AS address,type,"1" AS data_type,COALESCE ( update_time, cr…...
PYTHON训练营DAY28
类 (一)题目1:定义圆(Circle)类 要求: 包含属性:半径 radius。包含方法: calculate_area():计算圆的面积(公式:πr)。calculate_circ…...
pytorch小记(二十一):PyTorch 中的 torch.randn 全面指南
pytorch小记(二十一):PyTorch 中的 torch.randn 全面指南 PyTorch 中的 torch.randn 全面指南一、接口定义二、参数详解三、常见使用场景四、位置参数 vs. Tuple 传参 —— 数值示例五、必须用关键字传入小结 PyTorch 中的 torch.randn 全面指…...