- Spark SQL架构及高级用法
Aurora_NeAr
sparksql架构
SparkSQL架构概述架构核心组件API层(用户接口)输入方式:SQL查询;DataFrame/DatasetAPI。统一性:所有接口最终转换为逻辑计划树(LogicalPlan),进入优化流程。编译器层(Catalyst优化器)核心引擎:基于规则的优化器(Rule-BasedOptimizer,RBO)与成本优化器(Cost-BasedOptimizer,CBO)。处理流程:阶段输入输出关键动
- 【免费下载】 探索PlantVillage-Dataset:深度学习在植物病害检测中的革命性突破
探索PlantVillage-Dataset:深度学习在植物病害检测中的革命性突破在这个数字化时代,人工智能正逐步改变我们的生活,其中深度学习在农业领域的应用尤其引人注目。PlantVillage-Dataset是一个开放源代码的项目,它提供了一个庞大的植物病害识别数据集,旨在帮助开发人员和研究者利用机器学习技术改善农作物健康状况的监测。本文将深入探讨该项目的技术细节、应用价值及其独特之处。项目简
- 使用vscode调试带-m参数的python代码
zaf赵
vscodepythonide
1.问题我在命令行运行的是pythonrender.py-mLangSplat/preprocessed_dataset/sofa/sofa--include_feature-lluage_features_1080p_dim3,但是在vscode中的普通调试,会报模块找不到的问题(原因是普通调试不会带-m参数,所以有些路径就会找不到)。因此,本文记录如何用vscode调试在命令行输入的如上Pyt
- 代谢组数据分析(二十四):基于tidymass包从质谱原始数据到代谢物注释结果的实践指南
生信学习者1
代谢组数据分析(2025版)数据分析数据挖掘r语言数据可视化
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者!文章目录介绍加载R包数据准备原始数据处理导入massDataset数据对象交互图数据探索更新样本表格信息峰分布情况缺失值情况数据清洗数据质量评估去除噪声代谢特征过滤立群样本填补缺失值数据标准化和整合预处理后评估代谢物注释增加MS2图谱到数据对象数据库1注释数据库2注释数据库3注释结果统计分析剔除无注释代谢物追踪数据对象的相
- Pytorch实现目标检测
importosimportrandomimportpandasaspdimportnumpyasnpimportcv2fromsklearn.model_selectionimporttrain_test_splitimporttorchfromtorch.utils.dataimportDataset,DataLoaderimporttorch.nnasnnimporttorch.nn.fun
- MySQL 8.0 OCP 1Z0-908 题目解析(4)
一只fish
MYSQLOCPmysql数据库
题目013Choosefour.Anewlydeployedreplicationmasterdatabasehasa10/90readtowriteratio.Thecompletedatasetiscurrently28Gbutwillneverfluctuatebeyond±10%.ThedatabasestoragesystemconsistsoftwolocallyattachedPCI
- 《机器学习实战》笔记(03):决策树
巨輪
机器学习机器学习决策树
决策树kNN算法可以完成很多分类任务,但是它最大的缺点就是给出数据的内在含义,决策树的主要优势就在于数据形式非常容易理解决策树的构造优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。缺点:可能会产生过度匹配问题。适用数据类型:数值型和标称型。创建分支的伪代码函数createBranch()Checkifeveryiteminthedatasetisinthesa
- tf.decode_raw
Wanderer001
TensorFlowtensorflow人工智能python
参考tf.decode_raw-云+社区-腾讯云tf.decode_raw函数的意思是将原来编码为字符串类型的变量重新变回来,这个方法在数据集dataset中很常用,因为制作图片源数据一般写进tfrecord里用to_bytes的形式,也就是字符串。这里将原始数据取出来,必须制定原始数据的格式,原始数据是什么格式这里解析必须是什么格式,要不然会出现形状的不对应问题!例如元数据是tf.float64
- nnUNet数据加载
山河百草
python开发语言
nnUNetDataset参数列表classnnUNetDataset(object):def__init__(self,folder:str,case_identifiers:List[str]=None,num_images_properties_loading_threshold:int=0,folder_with_segs_from_previous_stage:str=None):fol
- 第N8周:使用Word2vec实现文本分类
weixin_42245644
word2vec人工智能自然语言处理
本文为365天深度学习训练营中的学习记录博客原作者:K同学啊一、数据预处理1.加载数据importtorchimporttorch.nnasnnimporttorchvisionfromtorchvisionimporttransforms,datasetsimportos,PIL,pathlib,warningswarnings.filterwarnings("ignore")#忽略警告信息#w
- ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 384]
我是如此相信_
人工智能深度学习
这个错误通常发生在使用PyTorch训练神经网络时,输入数据维度不符合预期,不能batch_size整除。可能是输入的数据有剩余但不足以达到batch_size所导致的查阅资料发现:在torch.utils.data这个包中,DataLoader类下有一参数为:drop_last–settoTruetodropthelastincompletebatch,ifthedatasetsizeisnot
- AI人工智能大模型中——数据集就是一切 The dataset is everything
AI天才研究院
ChatGPT人工智能
文章目录人工智能模型中的“它”是数据集。The“it”inAImodelsisthedataset.2023年机器学习的现状TheStateofMLin2023ResearchCode研究代码LearnedStructures学习结构ComputeMultipliers计算乘数人工智能模型中的“它”是数据集。The“it”inAImodelsisthedataset.I’vebeenatOpenA
- 电商订单配送延迟预测项目:找出延时高风险订单
用机器学习预测电商订单是否延迟送达:来自巴西电商平台的真实案例项目背景在电商行业中,订单是否按时送达直接影响用户满意度与平台口碑。为了提高用户体验与物流效率,很多平台开始尝试利用机器学习手段提前预测哪些订单存在配送延迟的风险,从而提前介入、优化资源配置。本项目选用的是Kaggle上的BrazilianE-CommercePublicDataset数据集,包含10余张表,涵盖订单、客户、卖家、支付、
- python学习——PyTorch框架的学习(1)
北温凉
python学习python学习pytorch
PyTorch框架的学习简要声明基于小土堆课程视频BiliBili课程资源文章目录PyTorch框架的学习简要声明一、概要二、自定义`Dataset`实现数据加载1.`MyDataset`类的定义数据集初始化获取单个数据样本获取数据集长度2.`MyDataset`的实例化与合并三、使用TensorBoard进行可视化1.引入必要的库2.初始化`SummaryWriter`3.图像数据的处理与可视化
- 卷积神经网络实现猫狗分类
新手且大师
cnn分类人工智能
一.环境配置以及数据加载importtorchimporttorch.nnasnnimporttorch.optimasoptimimporttorchvision.transformsastransformsfromtorchvision.datasetsimportImageFolderfromtorch.utils.dataimportDataLoaderimportmatplotlib.p
- BSCAN 在糖尿病患者数据聚类分析中的应用
wh_xia_jun
AI+医疗机器学习支持向量机人工智能
完整代码:importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportDBSCANfromsklearn.preprocessingimportStandardScalerfromsklearn.datasetsimportmake_blobs#设置随机种子,确保结果可复现np.random.seed(42)#1.生成模拟
- 「日拱一码」035 机器学习——调参过程可视化
胖达不服输
「日拱一码」机器学习人工智能调参过程可视化神经网络python模型可解释性
目录超参数搜索的3D曲面可视化交互式3D可视化神经网络学习率的3D可视化SVM超参数的3D决策边界可视化超参数优化的3D动画超参数搜索的3D曲面可视化##超参数搜索的3D曲面可视化importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3Dfromsklearn.datasetsimportmake_
- PyTorch图像分类系列——流程概览
VAMOT
PyTorch图像分类系列pytorch深度学习分类计算机视觉
一、加载数据1.使用torchvision.datasets的方法加载经典数据集在此网址查看支持哪些经典数据集:Datasets—Torchvision0.18documentation(pytorch.org)data_train=torchvision.datasets.CIFAR10(root="CIFAR10",train=True,transform=ToTensor(),target_
- 基于逻辑回归的图像二分类算法实现(Pytorch版)
哎呦哥哥、
图像分类pytorch逻辑回归分类
基于逻辑回归的图像二分类算法实现(Pytorch版)数据集模型代码数据集链接:FastFoodClassificationDataset我们只使用Burger和Pizza这两类。模型代码importtorchimporttorch.nnasnnfromtorchvision.models.utilsimportload_state_dict_from_urlmodel_urls={'resnet5
- Real-World Blur Dataset for Learning and Benchmarking Deblurring Algorithms
钟屿
深度学习
用于学习和评估去模糊算法的真实世界模糊数据集摘要近年来,针对相机抖动和物体运动模糊的单幅图像去模糊提出了许多基于学习的方法。为了将这些方法推广到真实世界的模糊场景,包含大量真实模糊图像及其对应的清晰真实图像(groundtruth)的数据集至关重要。然而,目前尚不存在这样的数据集,因此所有现有方法都依赖于合成数据集,这导致它们无法有效去除真实世界图像的模糊。在本工作中,我们提出了一个用于学习和评估
- YOLO V8+Python训练手写数字识别
yuanpan
YOLOpython开发语言
以下是针对Windows11+Python环境的详细步骤说明,从数据集整理到模型训练,全部适配YOLOv8流程。1.数据集整理(MNIST→YOLO格式)1.1下载MNIST数据集MNIST数据集可通过Python直接下载(无需手动下载):python复制fromtorchvision.datasetsimportMNISTimportos#自动下载MNIST数据集(图片和标签)train_dat
- 遥感云平台-GEE下载Landsat8/9影像数据(python)
内容介绍上期文章介绍如何在网页端导出Landsat8/9数据,本期主要介绍如何在本地GEE-python端导出数据以及出图。环境配置:Vscode+Jupyternotebook+gee+geemap+python3.10#导出所需要的包,注意提前安装ee和geemapimporteeimportosimportnumpyasnpimportgeemapfromgeemap.datasetsimp
- Transformers基础组件—Datasets
小蒋的学习笔记
python人工智能机器学习
目录datasets基本使用加载在线数据集加载数据集合集中的某一项任务按照数据集划分进行加载查看数据集数据集划分数据选取与过滤数据映射保存与加载加载本地数据集直接加载文件作为数据集加载文件夹内全部文件作为数据集通过预先加载的其他格式转换加载数据集通过自定义加载脚本加载数据集DatasetwithDataCollatordatasets基本使用fromdatasetsimport*加载在线数据集da
- 神经网络项目--基于FPGA的AI简易项目(1-9图片数字识别)
霖12
深度学习pytorch神经网络fpga开发人工智能机器学习
1.训练MNIST模型importtorch#导入pytorch核心库importtorch.nnasnn#神经网络模块,如卷积层importtorch.optimasoptim#优化器fromtorchvisionimportdatasets,transforms#数据集与图像预处理工具#定义CNN模型classSimpleCNN(nn.Module):#PyTorch库中所有神经网络的“基础模
- Dify-Helm项目中Unstructured本地化部署方案解析
Dify-Helm项目中Unstructured本地化部署方案解析在基于Kubernetes的Dify部署实践中,文档预处理环节的Unstructured服务集成是一个值得关注的技术点。本文将从技术架构角度深入分析该组件的部署方案。核心需求分析Unstructured作为Dify生态中的重要预处理组件,主要负责文档解析和结构化处理。在Docker原生部署方案中,该服务通过独立容器提供RESTAPI
- 本地安装部署Unstructured-api
菜Queen
AIGCpythonunstructuredAPI
本地安装Unstructured-api1.源码部署创建环境并激活安装依赖启动项目调试项目2.Docker部署1.下载镜像2.启动容器3.结束4.遇到问题(在更新......)1.源码部署需要提前安装->uv前往[Github地址](GitHub-Unstructured-IO/unstructured-api)下载源码或者直接执行gitclone命令$gitclonehttps://github
- 嵌入式学习-PyTorch(4)-day21
LGGGGGQ
学习
1、torchvision中数据集的使用认识官方的一些数据集Datasets—Torchvision0.22documentation试了一下CIFAR10数据集,知道了如何下载官方数据集和展示他们去tensorboard中importtorchvisionfromtorch.utils.tensorboardimportSummaryWriter#处理数据集dataset_transform=t
- PyTorch数据准备:从基础Dataset到高效DataLoader
慕婉0307
pytorchpytorch人工智能python
一、PyTorch数据加载核心组件在PyTorch中,数据准备主要涉及两个核心类:Dataset和DataLoader。它们共同构成了PyTorch灵活高效的数据管道系统。Dataset类:作为数据集的抽象基类,需要实现三个关键方法:len():返回数据集大小getitem():获取单个数据样本(可选)init():初始化逻辑常见实现方式:继承torch.utils.data.Dataset使用T
- PyTorch数据加载与预处理
飘若随风
PyTorchpytorch人工智能python
数据加载与预处理详解1.数据集类(Dataset和DataLoader)1.1Dataset基类PyTorch中的Dataset是一个抽象类,所有自定义的数据集都应该继承这个类,并实现以下两个方法:__len__():返回数据集的大小__getitem__():根据索引返回一个样本概念解析:Dataset类提供了统一的数据访问接口通过继承Dataset,我们可以轻松地将数据集成到PyTorch的生
- C++函数签名
C++函数签名-CSDN博客函数签名的组成部分函数名称函数的名字(如calculate、print)。参数列表(ParameterList)参数的类型、顺序和数量。参数的名字不影响签名(如intfunc(inta)和intfunc(intb)是同一签名)。所属的类或命名空间成员函数属于特定类(如MyClass::method)。自由函数属于全局或某个命名空间。成员函数的const/volatile
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">