上篇博文已经介绍了如何通过 继承 Function
,然后使用python
来扩展 pytorch
, 本文主要介绍如何通过 cffi
来扩展 pytorch
。
官网给出了一个 MyAdd
的 Demo
github地址,本文通过 这个 Demo
来搞定如何 通过 cffi
来扩展 pytorch
。
自定义 OP
pytorch
自定义 op
的基本步骤总结如下。
一、C部分 :
new_op.h
: CPU
forward(), backward()
接口声明
new_op_cu.h
: GPU
forward(), backward()
接口声明
new_op.c
: 实现 forward(), backward()
CPU
代码
new_op.cu
: 实现 forward(), backward()
GPU
代码
二、编译上面写的 C/CUDA 代码
三、python部分:
用 Function
包装 C OP
用 Module
包装 Function
下面,来看一下 官方的 Demo
看Script 部分
Script
部分的文件结构如下:
src/
: 放着 C 代码
functions/
: Function
包装
modules/
: Module
包装
build
: 编译 C
源码的 代码
C/CUDA 代码
#include
int my_lib_add_forward(THFloatTensor *input1, THFloatTensor *input2,
THFloatTensor *output)
{
if (!THFloatTensor_isSameSizeAs(input1, input2))
return 0 ;
THFloatTensor_resizeAs(output, input1);
THFloatTensor_cadd(output, input1, 1.0 , input2);
return 1 ;
}
int my_lib_add_backward(THFloatTensor *grad_output, THFloatTensor *grad_input)
{
THFloatTensor_resizeAs(grad_input, grad_output);
THFloatTensor_fill(grad_input, 1 );
return 1 ;
}
编译用代码
import os
import torch
from torch.utils.ffi import create_extension
this_file = os.path.dirname(__file__)
sources = ['src/my_lib.c' ]
headers = ['src/my_lib.h' ]
defines = []
with_cuda = False
if torch.cuda.is_available():
print('Including CUDA code.' )
sources += ['src/my_lib_cuda.c' ]
headers += ['src/my_lib_cuda.h' ]
defines += [('WITH_CUDA' , None )]
with_cuda = True
ffi = create_extension(
'_ext.my_lib' ,
headers=headers,
sources=sources,
define_macros=defines,
relative_to=__file__,
with_cuda=with_cuda
)
if __name__ == '__main__' :
ffi.build()
Function Wrapper
import torch
from torch.autograd import Function
from _ext import my_lib
from torch.autograd import Variable
class MyAddFunction (Function) :
@staticmethod
def forward (ctx, input1, input2) :
output = input1.new()
if not input1.is_cuda:
my_lib.my_lib_add_forward(input1, input2, output)
else :
my_lib.my_lib_add_forward_cuda(input1, input2, output)
return output
@staticmethod
def backward (ctx, grad_output) :
t_grad_output = grad_output.data
t_grad_input = t_grad_output.new().resize_as_(t_grad_output).zero_()
grad_input = Variable(t_grad_input, requires_grad=grad_output.requires_grad, volatile=grad_output.volatile)
if not grad_output.is_cuda:
my_lib.my_lib_add_backward(grad_output.data, t_grad_input)
else :
my_lib.my_lib_add_backward_cuda(grad_output.data, t_grad_input)
return grad_input, grad_input
Module Wrapper
class MyAddModule (Module) :
def forward (self, input1, input2) :
return MyAddFunction.apply(input1, input2)
你可能感兴趣的:(pytorch,pytorch学习笔记)
【python error】cannot import name ‘TorchDispatchMode‘ from ‘torch.utils._python_dispatch‘
Eternal-Student
Jetson Orin NX Python python 开发语言
报错:cannotimportname‘TorchDispatchMode’from‘torch.utils._python_dispatch’(/home/nvidia/.conda/envs/pytorch/lib/python3.8/site-packages/torch/utils/_python_dispatch.py)File“/media/nvidia/Ubuntu/xxxxx/ev
梯度下降法以及随机梯度下降法
HKkuaidou
人工智能 深度学习 python pytorch
梯度下降法就是在更新weight的时候,向函数值下降的最快方向进行更新,具体的原理我就不再写了,就是一个求偏导的过程,有高数基础的都能够很快的理解过程。我在我的github里面会一直更新自己学习pytorch的过程,地址为:https://github.com/00paning/Pytorch_Learning这里我直接展示一个简易实现的python代码,我们还是先看一下运行的效果图:相关pyth
pytorch实现cifar10多分类总结
L_pyu
人工智能 pytorch 分类
cifar-10简介:CIFAR-10是一个常用的图像分类数据集,每张图片都是3×32×32,3通道彩色图片,分辨率32×32。它包含了10个不同类别,每个类别有6000张图像,其中5000张用于训练,1000张用于测试。这10个类别分别为:飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。CIFAR-10分类任务是将这些图像正确地分类到它们所属的类别中。对于这个任务,可以使用深度学习模型,如卷积
【PyTorch】torch.nn.functional.log_softmax() 函数:计算 log(softmax),用于多分类任务
彬彬侠
PyTorch基础 log_softmax 多分类 交叉熵损失 分类 pytorch python 深度学习
torch.nn.functional.log_softmaxtorch.nn.functional.log_softmax是PyTorch提供的用于计算log(softmax)的函数,通常用于多分类任务和计算交叉熵损失,可以提高数值稳定性并防止数值溢出。1.log_softmax的数学公式对于输入张量XXX,softmax计算如下:softmax(Xi)=eXi∑jeXj\text{softma
【PyTorch】torch.nn.functional.cross_entropy() 函数:分类任务的交叉熵损失函数
彬彬侠
PyTorch基础 cross_entropy 交叉熵损失函数 分类 pytorch python 深度学习
torch.nn.functional.cross_entropytorch.nn.functional.cross_entropy是PyTorch中用于分类任务的交叉熵损失函数,用于衡量预测概率分布与真实类别分布之间的差异,常用于多分类任务(multi-classclassification)。1.交叉熵损失的数学公式对于单个样本,交叉熵损失的计算公式为:L=−∑i=1Cyilog(yi^)\
每天五分钟玩转深度学习PyTorch:基于GoogLeNet完成CAFIR10分类
每天五分钟玩转人工智能
深度学习框架pytorch 深度学习 pytorch 分类 GoogLeNet 人工智能 CAFIR10
本文重点前面我们终于使用pytorch搭建了GoogLeNet,本文我们使用该网络模型解决一个实际问题,也就是使用它完成CAFIR10分类,其实就这些任务而言,我们只要搭建好模型,然后把数据喂进去就行了,其它的地方都是一样的,就是网络模型不一样。代码
深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率90%+,pytorch复现
羊小猪~~
深度学习 网络 pytorch 人工智能 python 机器学习 分类
本文为365天深度学习训练营中的学习记录博客原作者:K同学啊前言如果说最经典的神经网络,ResNet肯定是一个,从ResNet发布后,很多人做了修改,denseNet网络无疑是最成功的一个,它采用密集型连接,将通道数连接在一起;本文是基于上一篇复现DenseNet121模型,做一个乳腺癌图像识别,效果还行,准确率0.9+;CNN经典网络之“DenseNet”简介,源码研究与复现(pytorch):
PyTorch 深度学习实战(13):Proximal Policy Optimization (PPO) 算法
进取星辰
PyTorch 深度学习实战 深度学习 pytorch 算法
在上一篇文章中,我们介绍了Actor-Critic算法,并使用它解决了CartPole问题。本文将深入探讨ProximalPolicyOptimization(PPO)算法,这是一种更稳定、更高效的策略优化方法。我们将使用PyTorch实现PPO算法,并应用于经典的CartPole问题。一、PPO算法基础PPO是OpenAI提出的一种强化学习算法,旨在解决策略梯度方法中的训练不稳定问题。PPO通过
机器学习(二) 本文(2.5万字) | KNN算法原理及Python复现 |
小酒馆燃着灯
机器学习 算法 k近邻算法
文章目录一KNN算法原理二KNN三要素三机器学习中标准化四KNN分类预测规则五KNN回归预测规则六KNN算法实现方式七KDTree7.1构造KDtree7.2KDtree查找最近邻八KNN特点九KNN算法实现案例一案例二1.机器学习2.深度学习与目标检测3.YOLOv54.YOLOv5改进5.YOLOv8及其改进6.Python与PyTorch7.工具8.小知识点9.杂记一KNN算法原理K近邻分类
【大模型LLM面试合集】分布式训练_总结
X.AI666
大模型LLM面试合集 面试 分布式 人工智能 语言模型
9.总结1.数据并行数据并行,由于其原理相对比较简单,是目前使用最广泛的分布式并行技术。数据并行不仅仅指对训练的数据并行操作,还可以对网络模型梯度、权重参数、优化器状态等数据进行并行。我们首先以PyTorch数据并行的发展(DataParallel、DistributedDataParallel、FullyShardedDataParallel)为主线进行讲述了数据并行的技术原理。同时,也简述了D
【vLLM 学习】使用 TPU 安装
HyperAI超神经
vLLM 学习 人工智能 vLLM 深度学习 TPU 机器学习 教程
vLLM是一款专为大语言模型推理加速而设计的框架,实现了KV缓存内存几乎零浪费,解决了内存管理瓶颈问题。更多vLLM中文文档及教程可访问→https://vllm.hyper.ai/vLLM使用PyTorchXLA支持GoogleCloudTPU。依赖环境GoogleCloudTPUVM(单主机和多主机)TPU版本:v5e、v5p、v4Python:3.10安装选项:href=“https://v
在windows下运行ollama用5600XT (其实旧的a卡应该都可以)步骤同时用ComfyUI + RX 5600 XT + DirectML 安装与配置
Zalo2
AI deepseek windows llama stable diffusion linux AI作画
Linux部分5600XT这个卡是gfx1010的核心,这个是rand1架构,这是被amd放弃的老古董包裹其他的rand1或者rand2都是。没钱也要玩AI(自能简单运用,不能训练,微调等)这张卡只有6g远远不够ai使用所以我发现好像是能和cpu一起混用的。#警告这张卡不要在linux下尝试安装rocm版本进行pytorch编译,然后进行模型微调,反正我是浪费时间了,根本行不通,因为amd根本就没
PyTorch 和 Python关系
一只积极向上的小咸鱼
python pytorch 人工智能
1PyTorch和Python关系PyTorch和Python是两个不同但相互关联的工具,主要用于机器学习和深度学习领域。以下是它们之间的关系和各自的作用:Python编程语言:Python是一种高级编程语言,以其简洁易读的语法而闻名。广泛使用:Python在数据科学、人工智能、Web开发、自动化等多个领域有着广泛的应用。库和生态系统丰富:Python拥有丰富的第三方库和工具,如NumPy、pan
python和pytorch关系_PyTorch:Python优先的深度学习框架
weixin_39877182
最近,Torch7团队开源了PyTorch。据该项目官网介绍,PyTorch是一个Python优先的深度学习框架,能够在强大的GPU加速基础上实现张量和动态神经网络。PyTorch是一个Python软件包,其提供了两种高层面的功能:使用强大的GPU加速的Tensor计算(类似numpy)构建于基于tape的autograd系统的深度神经网络如有需要,你也可以复用你最喜欢的Python软件包(如nu
点云空洞的边界识别提取 pso-bp 神经网络的模型来修复点云空洞 附python代码
点云-激光雷达-Slam-三维牙齿
激光雷达 点云 c++为主 神经网络 人工智能 深度学习 点云 python
代码是一个Python程序,用于处理3D点云数据,特别是检测和修复点云中的孔洞区域。1.**导入库**:-`numpy`:用于数学运算。-`open3d`:用于处理3D数据和可视化。-`torch`:PyTorch库,用于深度学习。-`torch.nn`和`torch.optim`:PyTorch的神经网络和优化器模块。-`mpl_toolkits.mplot3d`和`matplotlib.pyp
OSError: We couldn‘t connect to ‘https://huggingface.co‘ to load this file,
小李飞刀李寻欢
Notebook huggingface bert 分类 大模型
场景:训练bert-base-chinese下游任务:分类。在一个服务器可以用,但GPU只有一个卡,只能换一个服务器,换个服务器又要重装环境,但后者下载模型有问题,手动用git-lfs下载后指定位置报错:Traceback(mostrecentcalllast):/examples/pytorch/text-classification/run_glue.py",line622,inmain()/
Python深度学习033:Python、PyTorch、CUDA和显卡驱动之间的关系
若北辰
Python深度学习 python 深度学习 pytorch
Python、PyTorch、CUDA和显卡驱动之间的关系相当紧密,它们共同构成了一个能够执行深度学习模型的高效计算环境。下面是它们之间关系的简要概述:PythonPython是一种编程语言,广泛用于科学计算、数据分析和机器学习。它是开发和运行PyTorch代码的基础环境。PyTorchPyTorch是一个开源的机器学习库,用于应用如自然语言处理和计算机视觉的深度学习模型。它提供了丰富的API,使
PyTorch深度学习框架进阶学习计划 - 第21天:自然语言处理基础
凡人的AI工具箱
深度学习 pytorch 学习 人工智能 AI编程 AIGC 自然语言处理
PyTorch深度学习框架进阶学习计划-第21天自然语言处理基础今天我们将深入学习自然语言处理(NLP)的基础概念,重点关注词嵌入技术、序列建模原理以及主流模型之间的区别和优缺点。通过理解这些基础知识,你将能够更好地应用PyTorch构建NLP应用。1.词嵌入原理与实现词嵌入(WordEmbeddings)是NLP中的核心概念,它将单词映射到连续向量空间,使得语义相似的词在向量空间中距离较近。为什
PyTorch深度学习框架60天进阶学习计划 - 第19天:时间序列预测
凡人的AI工具箱
深度学习 pytorch 学习 人工智能 AI编程 迁移学习 python
PyTorch深度学习框架60天进阶学习计划-第19天:时间序列预测目录时间序列预测概述滑动窗口数据构造方法归一化策略对比:MinMaxvsZ-ScoreLSTM基础原理Attention机制与LSTM结合LSTM-Attention模型实现TeacherForcing技术与应用Prophet基准模型对比多步预测的滚动验证方法综合实战:股票价格预测1.时间序列预测概述时间序列预测是机器学习中的一个
PyTorch深度学习框架60天进阶学习计划 - 第18天:模型压缩技术
凡人的AI工具箱
深度学习 pytorch 学习 python 人工智能
PyTorch深度学习框架60天进阶学习计划-第18天:模型压缩技术目录模型压缩技术概述知识蒸馏详解软标签生成策略KL散度损失推导温度参数调节结构化剪枝技术通道剪枝评估准则L1-norm剪枝算法APoZ剪枝算法量化训练基础量化类型与精度PyTorch量化API剪枝与量化协同优化Torch.fx动态计算图修改自动化模型压缩流程实现实战案例:ResNet模型压缩性能评估与分析进阶挑战与思考1.模型压缩
五分钟快速掌握windows深度学习环境配置:Anaconda、PyCharm、Pytorch、jupyter notebook
芝帕先生
深度学习 windows pycharm python conda pip 人工智能
目录前言下载并安装Anaconda下载途径安装步骤下载并安装PyCharm安装pytorch安装jupyternotebook前言新手五分钟掌握windows深度学习环境配置:Anaconda、PyCharm、Pytorch配置的时候遇到了很多问题,总结了一下,可以按这个流程无脑配置。通过本流程下载的版本Anaconda2023.03PyCharmCommunity2023.1.3Pytorch2
python,pycharm,pytorch,向量数据库,环境搭建记录
dept123
python pycharm pytorch 向量数据库
修改ubuntu上的pycharm镜像源,详细步骤-腾讯云开发者社区-腾讯云【超详细教程】2024最新Pytorch安装教程(同时讲解安装CPU和GPU版本)-CSDN博客https://zhuanlan.zhihu.com/p/667447891Quickstart|MilvusDocumentation
【图像去噪】论文复现:TPAMI 2025!全面提升单图像去噪泛化性!像素级零样本去噪方法Pixel2Pixel的Pytorch源码复现,跑通源码,修改各种报错,框架详解,注释详细!
十小大
pytorch 人工智能 python 深度学习 计算机视觉 图像处理 图像去噪
请先看【专栏介绍文章】:【图像去噪(ImageDenoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)完整代码和训练好的模型权重文件下载链接见本文底部,订阅专栏免费获取!本文亮点:跑通Pixel2Pixel全部源码,包含数据集准备、制作像素库(PixelBank)、训练和推理等,
(4-8)基于DeepSeekMoE架构的DeepSeek-V3:测试模型
码农三叔
训练 RAG 多模态) 架构 transformer deekseek 人工智能 大模型
4.8测试模型DeepSeek-V3是一款基于PyTorch的深度学习模型,主要用于文本生成任务。在加载模型时,首先需要从指定路径加载模型的配置文件和预训练权重。加载完成后,模型被设置为评估模式,并移动到GPU上以加速推理过程。在生成文本时,用户可以输入提示文本,模型会根据这些提示生成相应的文本输出。生成过程支持交互式输入和批量处理两种模式,用户可以根据需要选择适合的方式进行文本生成。此外,模型的
一个基于LSTM的字符级文本生成模型的训练+使用(pytorch)
一只小铁柱
lstm pytorch 人工智能
一、代码实现1.配置文件config.pyimporttorch#设备配置DEVICE=torch.device('cuda'iftorch.cuda.is_available()else'cpu')#超参数和配置SEQ_LENGTH=100#输入序列长度BATCH_SIZE=64#批大小EMBEDDING_DIM=256#嵌入层维度HIDDEN_SIZE=512#LSTM隐藏层大小NUM_LAY
PyTorch安装与环境配置终极指南:从零搭建高效深度学习开发环境(一)
WHCIS
python pytorch 人工智能 深度学习 机器学习
一、环境搭建的核心意义与准备工作1.1深度学习环境的核心挑战深度学习开发环境涉及复杂的软件栈依赖关系:硬件兼容性:GPU型号(NVIDIA系列)与CUDA版本的匹配软件依赖链:Python版本→PyTorch版本→CUDA驱动→cuDNN加速库环境隔离需求:不同项目可能依赖冲突的库版本1.2硬件准备清单硬件类型最低要求推荐配置CPU4核8核以上内存8GB32GB+GPU支持CUDANVIDIART
RNN 实战指南:用 PyTorch 从零实现文本分类
吴师兄大模型
PyTorch pytorch python 人工智能 RNN 循环神经网络 文本分类 开发语言
Langchain系列文章目录01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南02-玩转LangChainMemory模块:四种记忆类型详解及应用场景全覆盖03-全面掌握LangChain:从核心链条构建到动态任务分配的实战指南04-玩转LangChain:从文档加载到高效问答系统构建的全程实战05-玩转LangChain:深度评估问答系统的三种高效方法(示例生成、手
Pytorch实现之利用普通GAN的人脸修复
这张生成的图像能检测吗
优质GAN模型训练自己的数据集 GAN系列 pytorch 生成对抗网络 人工智能 神经网络 深度学习 计算机视觉 python
简介简介:利用遮挡真实样本的部分面貌,输入给生成器,让生成器输出未被遮挡的面貌,以达到修复人脸的效果。论文题目:FACERESTORATIONVIAGENERATIVEADVERSARIALNETWORKS(基于生成对抗网络的人脸恢复)会议:2023ThirdInternationalConferenceonSecureCyberComputingandCommunication(ICSCCC)摘
训练大模型LLM选择哪种开发语言最好
大0马浓
人工智能 训练 python
训练大型语言模型(LLM)时,选择合适的编程语言主要取决于效率、生态支持、开发便利性以及特定需求(如性能优化或硬件适配)。以下是常见语言的分析和推荐:---1.Python(首选语言)优势:-生态系统丰富:主流深度学习框架(PyTorch、TensorFlow、JAX)均以Python为主要接口,提供完整的工具链(数据处理、模型训练、评估部署)。-开发效率高:语法简洁,适合快速实验和原型开发,社区
PyTorch分布式训练
阳光明媚大男孩
pytorch 分布式 人工智能
本文结构:分布式训练概述环境设置数据并行(DDP)模型并行启动训练性能优化建议示例代码参考资料和相关问题以下是为您整理的PyTorch分布式训练教程指南:一、PyTorch分布式训练核心概念数据并行:通过分割数据集实现多GPU并行训练,主流方法包括:DistributedDataParallel(DDP):官方推荐的分布式训练接口DataParallel(DP):单机多卡方案(已逐步被DDP取代)
js动画html标签(持续更新中)
843977358
html js 动画 media opacity
1.jQuery 效果 - animate() 方法 改变 "div" 元素的高度: $(".btn1").click(function(){ $("#box").animate({height:"300px
springMVC学习笔记
caoyong
springMVC
1、搭建开发环境
a>、添加jar文件,在ioc所需jar包的基础上添加spring-web.jar,spring-webmvc.jar
b>、在web.xml中配置前端控制器
<servlet>
&nbs
POI中设置Excel单元格格式
107x
poi style 列宽 合并单元格 自动换行
引用:http://apps.hi.baidu.com/share/detail/17249059
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:
先获取工作薄对象:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder = wb.
jquery 获取A href 触发js方法的this参数 无效的情况
一炮送你回车库
jquery
html如下:
<td class=\"bord-r-n bord-l-n c-333\">
<a class=\"table-icon edit\" onclick=\"editTrValues(this);\">修改</a>
</td>"
j
md5
3213213333332132
MD5
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MDFive {
public static void main(String[] args) {
String md5Str = "cq
完全卸载干净Oracle11g
sophia天雪
orale数据库 卸载干净 清理注册表
完全卸载干净Oracle11g
A、存在OUI卸载工具的情况下:
第一步:停用所有Oracle相关的已启动的服务;
第二步:找到OUI卸载工具:在“开始”菜单中找到“oracle_OraDb11g_home”文件夹中
&
apache 的access.log 日志文件太大如何解决
darkranger
apache
CustomLog logs/access.log common 此写法导致日志数据一致自增变大。
直接注释上面的语法
#CustomLog logs/access.log common
增加:
CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-d.log 
Hadoop单机模式环境搭建关键步骤
aijuans
分布式
Hadoop环境需要sshd服务一直开启,故,在服务器上需要按照ssh服务,以Ubuntu Linux为例,按照ssh服务如下:
sudo apt-get install ssh
sudo apt-get install rsync
编辑HADOOP_HOME/conf/hadoop-env.sh文件,将JAVA_HOME设置为Java
PL/SQL DEVELOPER 使用的一些技巧
atongyeye
java sql
1 记住密码
这是个有争议的功能,因为记住密码会给带来数据安全的问题。 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。 位置:Tools菜单--Preferences--Oracle--Logon HIstory--Store with password
2 特殊Copy
在SQL Window
PHP:在对象上动态添加一个新的方法
bardo
方法 动态添加 闭包
有关在一个对象上动态添加方法,如果你来自Ruby语言或您熟悉这门语言,你已经知道它是什么...... Ruby提供给你一种方式来获得一个instancied对象,并给这个对象添加一个额外的方法。
好!不说Ruby了,让我们来谈谈PHP
PHP未提供一个“标准的方式”做这样的事情,这也是没有核心的一部分...
但无论如何,它并没有说我们不能做这样
ThreadLocal与线程安全
bijian1013
java java多线程 threadLocal
首先来看一下线程安全问题产生的两个前提条件:
1.数据共享,多个线程访问同样的数据。
2.共享数据是可变的,多个线程对访问的共享数据作出了修改。
实例:
定义一个共享数据:
public static int a = 0;
Tomcat 架包冲突解决
征客丶
tomcat Web
环境:
Tomcat 7.0.6
win7 x64
错误表象:【我的冲突的架包是:catalina.jar 与 tomcat-catalina-7.0.61.jar 冲突,不知道其他架包冲突时是不是也报这个错误】
严重: End event threw exception
java.lang.NoSuchMethodException: org.apache.catalina.dep
【Scala三】分析Spark源代码总结的Scala语法一
bit1129
scala
Scala语法 1. classOf运算符
Scala中的classOf[T]是一个class对象,等价于Java的T.class,比如classOf[TextInputFormat]等价于TextInputFormat.class
2. 方法默认值
defaultMinPartitions就是一个默认值,类似C++的方法默认值
java 线程池管理机制
BlueSkator
java线程池 管理机制
编辑
Add
Tools
jdk线程池
一、引言
第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
关于hql中使用本地sql函数的问题(问-答)
BreakingBad
HQL 存储函数
转自于:http://www.iteye.com/problems/23775
问:
我在开发过程中,使用hql进行查询(mysql5)使用到了mysql自带的函数find_in_set()这个函数作为匹配字符串的来讲效率非常好,但是我直接把它写在hql语句里面(from ForumMemberInfo fm,ForumArea fa where find_in_set(fm.userId,f
读《研磨设计模式》-代码笔记-迭代器模式-Iterator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.Arrays;
import java.util.List;
/**
* Iterator模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象内部表示
*
* 个人觉得,为了不暴露该
常用SQL
chenjunt3
oracle sql C++ c C#
--NC建库
CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPA
数学是科学技术的语言
comsci
工作 活动 领域模型
从小学到大学都在学习数学,从小学开始了解数字的概念和背诵九九表到大学学习复变函数和离散数学,看起来好像掌握了这些数学知识,但是在工作中却很少真正用到这些知识,为什么?
最近在研究一种开源软件-CARROT2的源代码的时候,又一次感觉到数学在计算机技术中的不可动摇的基础作用,CARROT2是一种用于自动语言分类(聚类)的工具性软件,用JAVA语言编写,它
Linux系统手动安装rzsz 软件包
daizj
linux sz rz
1、下载软件 rzsz-3.34.tar.gz。登录linux,用命令
wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下载。
2、解压 tar zxvf rzsz-3.34.tar.gz
3、安装 cd rzsz-3.34 ; make posix 。注意:这个软件安装与常规的GNU软件不
读源码之:ArrayBlockingQueue
dieslrae
java
ArrayBlockingQueue是concurrent包提供的一个线程安全的队列,由一个数组来保存队列元素.通过
takeIndex和
putIndex来分别记录出队列和入队列的下标,以保证在出队列时
不进行元素移动.
//在出队列或者入队列的时候对takeIndex或者putIndex进行累加,如果已经到了数组末尾就又从0开始,保证数
C语言学习九枚举的定义和应用
dcj3sjt126com
c
枚举的定义
# include <stdio.h>
enum WeekDay
{
MonDay, TuesDay, WednesDay, ThursDay, FriDay, SaturDay, SunDay
};
int main(void)
{
//int day; //day定义成int类型不合适
enum WeekDay day = Wedne
Vagrant 三种网络配置详解
dcj3sjt126com
vagrant
Forwarded port
Private network
Public network
Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点。
端口映射(Forwarded port),顾名思义是指把宿主计算机的端口映射到虚拟机的某一个端口上,访问宿主计算机端口时,请求实际是被转发到虚拟机上指定端口的。Vagrantfile中设定语法为:
c
16.性能优化-完结
frank1234
性能优化
性能调优是一个宏大的工程,需要从宏观架构(比如拆分,冗余,读写分离,集群,缓存等), 软件设计(比如多线程并行化,选择合适的数据结构), 数据库设计层面(合理的表设计,汇总表,索引,分区,拆分,冗余等) 以及微观(软件的配置,SQL语句的编写,操作系统配置等)根据软件的应用场景做综合的考虑和权衡,并经验实际测试验证才能达到最优。
性能水很深, 笔者经验尚浅 ,赶脚也就了解了点皮毛而已,我觉得
Word Search
hcx2013
search
Given a 2D board and a word, find if the word exists in the grid.
The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or ve
Spring4新特性——Web开发的增强
jinnianshilongnian
spring spring mvc spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装配置tengine并设置开机启动
liuxingguome
centos
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
Ubuntu上可以这样安装
sudo aptitude install libdmalloc-dev libcurl4-opens
第14章 工具函数(上)
onestopweb
函数
index.html
<!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/
Xelsius 2008 and SAP BW at a glance
blueoxygen
BO Xelsius
Xelsius提供了丰富多样的数据连接方式,其中为SAP BW专属提供的是BICS。那么Xelsius的各种连接的优缺点比较以及Xelsius是如何直接连接到BEx Query的呢? 以下Wiki文章应该提供了全面的概览。
http://wiki.sdn.sap.com/wiki/display/BOBJ/Xcelsius+2008+and+SAP+NetWeaver+BW+Co
oracle表空间相关
tongsh6
oracle
在oracle数据库中,一个用户对应一个表空间,当表空间不足时,可以采用增加表空间的数据文件容量,也可以增加数据文件,方法有如下几种:
1.给表空间增加数据文件
ALTER TABLESPACE "表空间的名字" ADD DATAFILE
'表空间的数据文件路径' SIZE 50M;
&nb
.Net framework4.0安装失败
yangjuanjava
.net windows
上午的.net framework 4.0,各种失败,查了好多答案,各种不靠谱,最后终于找到答案了
和Windows Update有关系,给目录名重命名一下再次安装,即安装成功了!
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=17113
方法:
1.运行cmd,输入net stop WuAuServ
2.点击开