- TensorRT模型量化实践
痛&快乐着
深度学习TensorRTc++深度学习
文章目录量化基本概念量化的方法方式1:trtexec(PTQ的一种)方式2:PTQ2.1pythononnx转trt2.2polygraphy工具:应该是对2.1量化过程的封装方式3:QAT(追求精度时推荐)使用TensorRT量化实践(C++版)使用TensorRT量化(python版)参考文献量化基本概念后训练量化PostTrainingQuantization(PTQ)量化过程仅仅通过离线推
- 使用TensorRT对YOLOv8模型进行加速推理
fengbingchun
DeepLearningCUDA/TensorRTYOLOv8TensorRT
这里使用GitHub上shouxieai的infer框架对YOLOv8模型进行加速推理,操作过程如下所示:1.配置环境,依赖项,包括:(1).CUDA:11.8(2).cuDNN:8.7.0(3).TensorRT:8.5.3.1(4).ONNX:1.16.0(5).OpenCV:4.10.02.cloneinfer代码:https://github.com/shouxieai/infer3.使用
- ONNX Runtime、CUDA、cuDNN、TensorRT版本对应
可keke
ML&DLpytorchdeeplearning
文章目录ONNXRuntime的安装ONNXRuntime与CUDA、cuDNN的版本对应ONNXRuntime与ONNX的版本对应ONNXRuntime、TensorRT、CUDA版本对应ONNXRuntime的安装官方文档注意,到目前为止,onnxruntime-gpu在CUDA12.x和CUDA11.x下的安装命令是不同的,仔细阅读官方文档。验证安装python>>>importonnxru
- python 安装 win32com
郎君啊
python开发语言
扩展,Python,安装相关视频讲解:StableDiffusion提升出图速度,TensorRT扩展,SDXL-SSD-1B-A1111,速度提升60%,PyTorch更新python的or运算赋值用法用python编程Excel有没有用处?如何在Windows系统上安装win32com一、整体流程步骤操作1下载并安装Python2安装pywin32扩展包3验证安装是否成功二、具体操作步骤及代码
- 深度学习部署:Triton(Triton inference server)【旧称:TensorRT serving,专门针对TensorRT设计的服务器框架,后来变为Triton,支持其他推理后端】
u013250861
#LLM/部署深度学习人工智能
triton作为一个NVIDIA开源的商用级别的服务框架,个人认为很好用而且很稳定,API接口的变化也不大,我从2020年的20.06切换到2022年的22.06,两个大版本切换,一些涉及到代码的工程变动很少,稍微修改修改就可以直接复用,很方便。本系列讲解的版本也是基于22.06。本系列讲解重点是结合实际的应用场景以及源码分析,以及写一些triton周边的插件、集成等。非速成,适合同样喜欢深入的小
- python opencv cuda tensorrt pytorch之间的版本对应
YIACA
pythonopencvpytorch
python3.7opencv4.4cuda10.2tensorrt7xpytorch1.5DeepStream5.xOpenCV2.x:支持Python2.xOpenCV3.x:支持Python2.7、Python3.xOpenCV4.x:支持Python2.7、Python3.x、Python3.8+CUDA11.x:支持Python3.6、3.7、3.8、3.9CUDA10.2:支持Pyth
- 自动驾驶之心规划控制理论&实战课程
vsdvsvfhf
自动驾驶人工智能机器学习
单目3D与单目BEV全栈教程(视频答疑)多传感器标定全栈系统学习教程多传感器融合:毫米波雷达和视觉融合感知全栈教程(深度学习传统方式)多传感器融合跟踪全栈教程(视频答疑)多模态融合3D目标检测教程(视频答疑)规划控制理论&实战课程国内首个BEV感知全栈系列学习教程首个基于Transformer的分割检测视觉大模型视频课程CUDA与TensorRT部署实战课程(视频答疑)Occupancy从入门到精
- LLM大模型落地-从理论到实践
hhaiming_
语言模型人工智能ai深度学习
简述按个人偏好和目标总结了学习目标和路径(可按需学习),后续将陆续整理出相应学习资料和资源。学习目标熟悉主流LLM(Llama,ChatGLM,Qwen)的技术架构和技术细节;有实际应用RAG、PEFT和SFT的项目经验较强的NLP基础,熟悉BERT、T5、Transformer和GPT的实现和差异,能快速掌握业界进展,有对话系统相关研发经验掌握TensorRT-LLM、vLLM等主流推理加速框架
- 算法学习-2024.8.16
蓝纹绿茶
学习
一、Tensorrt学习补充TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用32位或16位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了一起,针对GPU的特性做了优化。一个深度学习模型,在没有优化的情况下,比如一个卷积层、一个偏置层和一个reload层,这三层是需要调用三
- onnx转tensorRT模型出现错误 This version of TensorRT only supports input K as an initializer
lainegates
pytorch人工智能深度学习神经网络
问题onnx模型转tensorRT模型时,出现错误。ThisversionofTensorRTonlysupportsinputKasaninitializer.TryapplyingconstantfoldingonthemodelusingPolygraphgoogle到tensorRT8.6支持了dynamictopk,不会再有这个问题。但项目上限制是tensorRT8.5Problemsc
- trt | torch2trt的使用方式
Mopes__
分享TensorRTtorch2trt
一、安装1.安装tensorrtpython接口下载trt包.tar.gzhttps://developer.nvidia.com/nvidia-tensorrt-5x-download解压tarxvfTensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6.tar.gz安装trtpython接口cdpythonpipinstallte
- 用TensorRT-LLM跑通chatGLM3_6B模型
心瘾こころ
语言模型python
零、参考资料NVIDIA官网THUDM的GithubNVIDIA的Github一、构建TensorRT-LLM的docker镜像gitlfsinstallgitclonehttps://github.com/NVIDIA/TensorRT-LLM.gitcdTensorRT-LLMgitsubmoduleupdate--init--recursivesudomake-Cdockerrelease_
- Ubuntu20.04部署Ollama
stxinu
Nvidia人工智能linux服务器人工智能
在Ubuntu20.04上面安装完RTX4060的NvidiaCuda和TensorRT环境后,就开始跑些大模型看看。下面是安装使用Ollama的过程:安装Ollama:curl-khttps://ollama.com/install.sh|sh执行上面命令,有如下打印:%Total%Received%XferdAverageSpeedTimeTimeTimeCurrentDloadUploadT
- AI秒出图!StableDiffusion Automatic1111正式支持Tensorrt
germandai
人工智能stablediffusion
秒级出图的AI绘画终于支持Automatic1111。今天在AI绘画的开源平台Automatic1111上发布了Tensorrt项目,项目地址是https://github.com/AUTOMATIC1111/stable-diffusion-webui-tensorrt该项目是基于automatic1111的stable-diffusion-webui项目的子项目。基本原理:我们知道,autom
- PyTorch训练,TensorRT部署的简要步骤(采用ONNX中转的方式)
赛先生.AI
TensorRTpytorch人工智能TensorRTONNX
1.简述使用PyTorch执行训练,使用TensorRT进行部署有很多种方法,比较常用的是基于INetworkDefinition进行每一层的自定义,这样一来,会反向促使研究者能够对真个网络的细节有更深的理解。另一种相对简便的方式就是通过ONNX中间转换的形式。本文主要针对该途径进行简单的脉络阐述。2.导出ONNX如果使用的是PyTorch训练框架,可采用其自带的ONNX导出API。torch.o
- ChatGPT引领的AI面试攻略系列:cuda和tensorRT
梦想的理由
深度学习c++chatgpt人工智能面试
系列文章目录cuda和tensorRT(本文)AI全栈工程师文章目录系列文章目录一、前言二、面试题1.CUDA编程基础2.CUDA编程进阶3.性能优化4.TensorRT基础5.TensorRT进阶6.实际应用与案例分析7.编程与代码实践8.高级话题与趋势一、前言随着人工智能技术的飞速发展,该领域的就业机会也随之增多。无论是刚刚踏入这一领域的新手,还是经验丰富的专业人士,都可能面临着各种面试挑战。
- 使用TensorRT在PyTorch项目中加速深度学习推理
从零开始学习人工智能
深度学习pytorch人工智能
在PyTorch项目中使用TensorRT进行深度学习推理通常涉及以下步骤:模型训练:首先,在PyTorch中训练你的深度学习模型。模型导出:训练完成后,将模型从PyTorch导出为ONNX(OpenNeuralNetworkExchange)格式。ONNX是一种用于表示深度学习模型的开放格式,它使得模型可以在不同的深度学习框架之间互操作。模型优化:使用TensorRT优化ONNX模型。Tenso
- [C++]使用C++部署yolov9的tensorrt模型进行目标检测
FL1623863129
C/C++目标检测人工智能计算机视觉
部署YOLOv9的TensorRT模型进行目标检测是一个涉及多个步骤的过程,主要包括准备环境、模型转换、编写代码和模型推理。首先,确保你的开发环境已安装了NVIDIA的TensorRT。TensorRT是一个用于高效推理的SDK,它能对TensorFlow、PyTorch等框架训练的模型进行优化,从而加速模型在NVIDIAGPU上的运行速度。接下来,你需要将YOLOv9的模型转换为TensorRT
- [技术杂谈]Chat With RTX 介绍
FL1623863129
技术杂谈人工智能
英伟达(Nvidia)已于近日发布了名为“ChatwithRTX”的Demo版个性化AI聊天机器人,并在其海外官网渠道中提供了下载链接。据了解,这是一款适用于Windows平台的聊天机器人,由TensorRT-LLM提供支持,完全在本地运行。据官网信息显示,想要安装该聊天机器人应用,用户的系统配置需使用Nvidia的30系/40系显卡(或Ampere/Ada架构的其他显卡),且显存至少为8GB。此
- WhisperFusion:具有超低延迟无缝对话功能的AI系统
语音之家
智能语音人工智能语音识别语言模型
WhisperFusion基于WhisperLive和WhisperSpeech的功能而构建,在实时语音到文本管道之上集成了大型语言模型Mistral(LLM)。LLM和Whisper都经过优化,可作为TensorRT引擎高效运行,从而最大限度地提高性能和实时处理能力。WhiperSpeech是通过torch.compile进行优化的。特征实时语音转文本:利用OpenAIWhisperLive将口
- 心法利器[107] onnx和tensorRT的bert加速方案记录
机智的叉烧
bert人工智能深度学习自然语言处理
心法利器本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。2023年新一版的文章合集已经发布,获取方式看这里:又添十万字-CS的陋室2023年文章合集来袭,更有历史文章合集,欢迎下载。往期回顾心法利器[102]|大模型落地应用架构的一种模式心法利器[103]|大模型badcase修复方案思考心法利器[104]|基础RAG-向量检索
- jetson orin nano 使用yolov8导出engine
coder攻城狮
YOLO
1.导出onnx经过前面训练,得到了best.pt模型,现在想要使用tensorrt进行推理,需要先导出为onnx格式,再转化为engine格式。yoloexportmodel=best.ptformat=onnxopset=12simplify=True2.解决错误在导出过程中,可能会出现错误,cmake版本问题安装好后,默认cmake版本为3.16,需要对cmake进行升级sudopipins
- TensorRT下载安装
Jumy_S
python
TensorRT下载安装一下载地址https://developer.nvidia.com/nvidia-tensorrt-8x-download版本8.2.3GA(成熟稳定版)和8.4.0EA(新功能测试版)以后,有C++和python的API,完全等价可以混用二安装tensorrt的python版本pipinstalltensorrt-8.5.1.7-cp38-none-win_amd64.w
- 安装使用MMDeploy(Python版)
*Major*
人工智能python
安装使用MMDeploy(Python版)一安装MMDeploypythonmmdeploy-main/tools/deploy.pymmdeploy-main/configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.pymmdetection/configs/faster_rcnn/faster-rcnn_r50_
- Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度
知来者逆
StableDiffusionstablediffusionTensorRT人工智能AIGC
概述Diffusion模型在生成图像时最大的瓶颈是速度过慢的问题。为了解决这个问题,StableDiffusion采用了多种方式来加速图像生成,使得实时图像生成成为可能。最核心的加速是StableDiffusion使用了编码器将图像从原始的3512512大小转换为更小的46464大小,从而极大地降低了计算量。它还利用了潜在表示空间(latentspace)上的Diffusion过程,进一步降低了计
- yolov5 torch转tensorrt详解【推荐】
Teng-Sun
YOLO
转化函数#可以在https://github.com/ultralytics/yolov5/blob/master/export.py里面找到defexport_engine(model,im,file,half,dynamic,simplify,workspace=4,verbose=False,prefix=colorstr('TensorRT:')):#YOLOv5TensorRTexpor
- mmdetection模型转onnx和tensorrt实战
dream_home8407
python深度学习人工智能
一,说明1.本次实战使用的是mmdetection算法框架中的Cascase-Rcnn训练的模型;2.模型转换时,运行环境中各种工具的版本要保持一致;3.TensorRT我一直装不上,我用的是镜像环境.参考链接:link二,使用Docker镜像1.0,镜像基础环境构建exportTAG=openmmlab/mmdeploy:ubuntu20.04-cuda11.8-mmdeploydockerpu
- Jetson AGX Orin安装Anaconda,Cuda,Cudnn,pytorch,Tensorrt,ROS
枭玉龙
#ubuntu系统下安装pytorch人工智能python
Anaconda:https://repo.anaconda.com/archive/Cuda:https://forums.developer.nvidia.com/t/pytorch-for-jetson/720481:安装Anaconda3下载:Anaconda3-2021.11-Linux-aarch64.shchmod+xAnaconda3-2021.11-Linux-aarch64.s
- Jetson Xavier NX CUDA、cuDNN、TensorRT与Pytorch环境配置
想努力的人
pytorch人工智能python
橘子大虾关注IP属地:江苏0.1312022.05.1911:31:43字数331阅读3,854torch与vision源码安装包下载链接:https://pan.baidu.com/s/1mrIgGoMo0bq6otGhlh-E3A提取码:6sb31.Cuda、CuDNN和TensorRT在JetsonXavierNx控制台中执行指令#更新软件源sudoaptupdate#安装JetPack组件
- orin nx 安装paddlespeech记录
想努力的人
算法语音合成人工智能
nx配置:模块版本说明CPU8核内存16GCuda版本11.4Opencv版本4.5.4Tensorrt版本5.1Cudnn版本8.6.0.166Deepstream版本6.2Python版本3.8算力100T安装paddlepaddle:去飞桨官网下载jetpack版本的:下载安装Linux推理库-PaddlePaddle深度学习平台当需要调用语速的接口时:需要安装soxbindings包,这个
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,