上篇博文已经介绍了如何通过 继承 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学习笔记)
YOLOv8 Pose使用RKNN进行推理
い不靠譜︶朱Sir
实用项目部署 YOLO 人工智能 python linux pip
关注微信公众号:朱sir的小站,发送202411081即可免费获取源代码下载链接一、简单介绍YOLOv8-Pose是一种基于YOLOv8架构的姿态估计模型,能够识别图像中的关键点位置,这些关键点通常表示人体的关节、特征点或其他显著位置。该模型在COCO关键点数据集上训练,适合多种姿势估计任务。二、ONNX推理1.首先需要先将Pytorch模型转换为Onnx模型,下载pt模型这里给出官方的权重下载地
【CUDA】Pytorch_Extensions
joker D888
深度学习 pytorch python cuda c++ 深度学习
【CUDA】Pytorch_Extensions为什么要开发CUDA扩展?当我们在PyTorch中实现自定义算子时,通常有两种选择:使用纯Python实现(简单但效率低)使用C++/CUDA扩展(高效但需要编译)对于计算密集型的操作(如神经网络中的自定义激活函数),使用CUDA扩展可以获得接近硬件极限的性能。本文将以实现一个多项式激活函数x²+x+1为例,展示完整的开发流程。完整CUDA扩展代码解
本地搭建小型 DeepSeek 并进行微调
非著名架构师
大模型 知识文档 智能硬件 人工智能 大数据 大模型 deepseek
本文将指导您在本地搭建一个小型的DeepSeek模型,并进行微调,以处理您的特定数据。1.环境准备Python3.7或更高版本PyTorch1.8或更高版本CUDA(可选,用于GPU加速)Git2.克隆DeepSeek仓库bash复制gitclonehttps://github.com/deepseek-ai/deepseek.gitcddeepseek3.安装依赖bash复制pipinstall
Transformer 模型架构
2401_89793006
热门话题 transformer 深度学习 人工智能
Transformer是一种模型架构(ModelArchitecture),而不是一个软件框架(Framework)。它的定位更接近于一种设计蓝图,类似于建筑中的结构设计方案。以下是详细解释:1.架构vs框架的区别概念定义示例模型架构定义神经网络的结构设计Transformer、CNN、RNN开发框架提供实现模型的工具和库PyTorch、TensorFlow2.Transformer作为架构的核心
DeepSeek使用中的问题及解决方案(部分)
WeiLai1112
DeepSeek 人工智能
1.模型部署与配置问题问题1:环境依赖冲突现象:安装模型依赖库时出现版本不兼容(如Python、PyTorch版本冲突)。解决方案:使用虚拟环境(如conda或venv)隔离依赖。严格按照官方文档的版本要求安装依赖,例如:condacreate-ndeepseekpython=3.9condaactivatedeepseekpipinstalltorch==2.0.1transformers==4
TensorFlow LiteRT 概览
姚家湾
tensorflow 人工智能 python
LiteRT(简称LiteRuntime,以前称为TensorFlowLite)是Google面向设备端AI的高性能运行时。您可以找到适用于各种机器学习/AI任务的LiteRT就绪模型,也可以使用AIEdge转换和优化工具将TensorFlow、PyTorch和JAX模型转换为TFLite格式并运行。主要特性针对设备端机器学习进行了优化:LiteRT解决了五项关键的ODML约束条件:延迟时间(无需
机器学习(1)安装Pytorch
CoderIsArt
机器学习与深度学习 机器学习 pytorch 人工智能
1.安装命令pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cu1182.安装过程Log:Lookinginindexes:https://download.pytorch.org/whl/cu118CollectingtorchDownloadinghttps://download.
Pytorch实现之利用特征分布的差异来指导GAN的训练
这张生成的图像能检测吗
优质GAN模型训练自己的数据集 GAN系列 pytorch 生成对抗网络 人工智能 神经网络 深度学习 计算机视觉 机器学习
简介简介:FIDGAN通过将FID损失引入GAN的训练过程,显著提升了生成图像的质量。其核心思想是利用特征分布的差异来指导生成器的训练,同时通过使用轻量级的MobileNet-v3提高了计算效率。这种方法在图像生成任务中具有广泛的应用前景。论文题目:FIDGAN:AGenerativeAdversarialNetworkwithAnInceptionDistance(FIDGAN:具有初始距离的生
Pytorch实现论文之利用多生成器来预防模式崩溃
这张生成的图像能检测吗
GAN系列 优质GAN模型训练自己的数据集 人工智能 python 生成对抗网络 机器学习 pytorch 深度学习 计算机视觉
简介简介:一般来说,生成器相比判别器要完成的任务更加困难,前者需要完成数据概率密度的拟合,而后者只需要判别真伪,影响GAN性能的一个问题就是模式奔溃。而采用多生成器可以缓解这个问题。论文中主要设计了多生成器的架构和一个对于鉴别器的新损失设计来缓解这个问题。模型结构采用DCGAN的框架,原始损失基于WGAN-GP的设计理念。论文题目:StudyofPreventionofModeCollapsein
【深度学习pytorch-93】Transformer 相比 RNN 的优势
华东算法王
DL-pytorch 深度学习 pytorch transformer
Transformer相比RNN的优势Transformer和RNN(循环神经网络)都是自然语言处理(NLP)领域的重要架构,但它们的工作原理和应用方式有很大不同。Transformer由于其独特的结构和机制,在多个方面优于RNN。以下是Transformer相比RNN的主要优势:1.并行计算能力RNN的局限性RNN是按顺序处理输入的,即每个时间步的输出都依赖于前一个时间步的输出。这意味着,在训练
模型保存、训练与验证
钰见梵星
小土堆PyTorch深度学习 深度学习 人工智能
模型保存、训练与验证网络模型的保存与读取在PyTorch中,模型的保存与加载有两种主要方式:保存&加载完整模型(包括网络结构和参数)只保存&加载模型参数(推荐方式)可以直接跳过看最后几行。PyTorch提供torch.save()方法来保存模型,可以选择保存整个模型结构或只保存参数。保存整个模型importtorchfromtorchvisionimportmodels#加载VGG16模型(未使用
python中的深度学习框架TensorFlow 和 PyTorch 有什么区别?
大懒猫软件
python 深度学习 tensorflow pytorch
TensorFlow和PyTorch是目前最流行的两个深度学习框架,它们在设计理念、使用方式和社区支持等方面存在一些显著的区别。以下是它们的主要区别:1.设计理念TensorFlow:静态计算图:TensorFlow使用静态计算图,即在运行模型之前需要先定义整个计算图。这使得TensorFlow在大规模分布式训练和部署时具有优势,但调试和动态修改模型时可能不够灵活。功能全面:TensorFlow提
PyTorch与TensorFlow的对比:哪个框架更适合你的项目?
木觞清
pytorch tensorflow 人工智能
在机器学习和深度学习领域,PyTorch和TensorFlow是最流行的两个框架。它们各有特点,适用于不同的开发需求和场景。本文将详细对比这两个框架,帮助你根据项目需求选择最合适的工具。一、概述PyTorch和TensorFlow都是深度学习框架,它们为构建、训练和部署神经网络提供了强大的工具。尽管它们的最终目标相同,但其设计哲学和实现方式有所不同。PyTorch:由Facebook的人工智能研究
PyTorch使用教程(10)-torchinfo.summary网络结构可视化详细说明
深图智能
深度学习教程 深度学习 python pytorch 人工智能
1、基本介绍torchinfo是一个为PyTorch用户量身定做的开源工具,其核心功能之一是summary函数。这个函数旨在简化模型的开发与调试流程,让模型架构一目了然。通过torchinfo的summary函数,用户可以快速获取模型的详细结构和统计信息,如模型的层次结构、输入/输出维度、参数数量、多加操作(Mult-Adds)等关键信息。2、安装首先,你需要安装torchinfo库。可以通过pi
服务器与环境配置——Ubuntu22.04杂记
Osiria
服务器 python ubuntu
服务器与环境配置——Ubuntu22.04杂记系统配置apt/apt-getProxy配置修改主机名用户权限文件复制一些容易出错的python库安装Pytorch3D(0.7.5)psbody-mesh4.0([link](https://github.com/MPI-IS/mesh))其它系统配置apt/apt-getProxy配置sudonano/etc/apt/apt.conf.d/prox
anaconda,Python,cuda,pytorch 下载安装
三希
python pytorch 开发语言
以下是Anaconda、Python、CUDA和PyTorch的下载安装步骤:一、Anaconda下载访问Anaconda官方网站:DownloadAnacondaDistribution|Anaconda。根据您的操作系统(Windows、macOS或Linux)选择合适的版本进行下载。例如,对于Windows系统,选择对应的.exe安装文件。安装Windows:双击下载的.exe文件。按照安装
用deepseek学大模型08-长短时记忆网络 (LSTM)
wyg_031113
lstm 人工智能 rnn
deepseek.com从入门到精通长短时记忆网络(LSTM),着重介绍的目标函数,损失函数,梯度下降标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,模型应用场景和优缺点,及如何改进解决及改进方法数据推导。从入门到精通长短时记忆网络(LSTM)参考:长短时记忆网络(LSTM)在序列数据处理中的优缺点分析1.LSTM核心机制LSTM通过门控机制(遗忘门、输入门、输出门)和细
torch环境冲突:AttributeError: module ‘torch.library‘ has no attribute ‘register_fake‘
Ven%
深度学习速通系列 深度学习基础动手 Ubuntu 深度学习 机器学习 pytorch
如果torch版本冲突问题复杂,可以尝试清理环境并重新安装所有依赖项:pipuninstalltorchtorchaudiotorchvisionpipinstalltorch==2.3.1torchaudio==2.3.1torchvision==0.18.1-fhttps://mirrors.tuna.tsinghua.edu.cn/pytorch-wheels/torch_stable.ht
Pytorch实现之粒子群优化算法在GAN中的应用
这张生成的图像能检测吗
优质GAN模型训练自己的数据集 生成对抗网络 人工智能 神经网络 pytorch 算法 深度学习 计算机视觉
简介简介:主要是采用了粒子群优化(PSO)算法来优化GAN的一个训练。PSO是一种是一种基于种群的随机优化技术。这种优化技术是通过粒子群进行的,粒子群在每次迭代中都会更新自己。对于给定的目标函数,这种方法利用一个搜索空间,在那里粒子群移动,找到所需的全局最小值。这些粒子与它们当前的环境局部相互作用,也与彼此相互作用,具有可接受的随机性质。通过合并粒子的当前速度,探索粒子的历史和粒子的邻居,可以知道
用deepseek学大模型08-卷积神经网络(CNN)
wyg_031113
机器学习 人工智能
yuanbao.tencent.com从入门到精通卷积神经网络(CNN),着重介绍的目标函数,损失函数,梯度下降标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示,模型应用场景和优缺点,及如何改进解决及改进方法数据推导。一、目标函数与损失函数数学推导1.均方误差(MSE)标量形式:E(w)=12∑i=1N(yi−y^i)2E(\mathbf{w})=\f
Pytorch实现论文之一种基于扰动卷积层和梯度归一化的生成对抗网络
这张生成的图像能检测吗
GAN系列 优质GAN模型训练自己的数据集 pytorch 人工智能 机器学习 生成对抗网络 神经网络 计算机视觉 深度学习
简介简介:提出了一种针对鉴别器的梯度惩罚方法和在鉴别器中采用扰动卷积,拟解决锐梯度空间引起的训练不稳定性问题和判别器的记忆问题。论文题目:APerturbedConvolutionalLayerandGradientNormalizationbasedGenerativeAdversarialNetwork(一种基于扰动卷积层和梯度归一化的生成对抗网络)会议:20244thInternationa
Pytorch实现之在LSGAN中结合重建损失
这张生成的图像能检测吗
GAN系列 优质GAN模型训练自己的数据集 pytorch 人工智能 python
简介简介:这篇论文在LSGAN的基础上结合了重建损失来产生通过传统不良数据检测(BDD)机制的人工测量。这篇博客的主要内容是关于实现了重建损失与LSGAN的结合。论文题目:FalseDataInjectionAttacksBasedonLeastSquaresGenerativeAdversarialNetworkswithReconstructionLoss(基于重构损失最小二乘生成对抗网络的虚
Pytorch实现论文:利用推土机距离与梯度惩罚在ACGAN中训练。
这张生成的图像能检测吗
优质GAN模型训练自己的数据集 pytorch 人工智能 深度学习 gan 机器学习 生成对抗网络
论文简介论文:ACWGAN-GPformillingtoolbreakagemonitoringwithimbalanceddata(ACWGAN-GP用于铣削工具断裂监视的数据不平衡数据)出处:RoboticsandComputer-IntegratedManufacturing论文摘要:铣削操作过程中的刀具破损监测(TBM)对于确保工件质量和最大限度减少经济损失至关重要。在训练数据充足、分布均
Pytorch实现论文之三元DCGAN生成RGB图像用于红外图像着色生成
这张生成的图像能检测吗
GAN系列 优质GAN模型训练自己的数据集 人工智能 python 生成对抗网络 深度学习 pytorch 机器学习 计算机视觉
简介简介:采用了三次DCGAN单独生成单通道图像之后进行组成RGB图像放入鉴别器中检测,并在鉴别器和生成器的损失训练中采用梯度方法来提升或者降低权重。该方法将用于获得红外图像着色的生成。论文题目:InfraredImageColorizationbasedonaTripletDCGANArchitecture(基于三元DCGAN架构的红外图像着色)会议:2017IEEEConferenceonCo
conda更换环境版本(比如torch版本)
挨打且不服66
python python
找到想要的torch版本pytorch官网torch过往的版本创建新环境condacreate--namemyenvpython=3.8condaactivatemyenvconda虚拟环境中安装CUDA和CUDNN深度学习用显卡训练的时候,需要安装与显卡对应的cuda和cudnn。但不同的项目所支持的pytorch版本是不一样的,而pytorch版本和cuda版本之间又是互相依赖的,所以如果可以
一文读懂!深度学习 + PyTorch 的超实用学习路线
a小胡哦
深度学习 python pytorch
深度学习作为人工智能领域的核心技术,正深刻改变着诸多行业。PyTorch则是深度学习实践中备受青睐的框架,它简单易用且功能强大。下面就为大家详细规划深度学习结合PyTorch的学习路线。一、基础知识储备数学基础数学是很重要的!!!线性代数、概率论与数理统计、微积分是深度学习的数学基石。熟悉矩阵运算、概率分布、梯度计算等概念,能帮助理解深度学习模型的原理。例如,在神经网络中,矩阵乘法用于神经元之间的
Python 用pytorch从头写Transformer源码,一行一解释;机器翻译实例代码;Transformer源码解读与实战
医学小达人
NLP LLMs GPT 深度学习 人工智能 transformer python 机器学习
1.Transformer简介Transformer模型被提出的主要动机是解决序列处理任务的长距离依赖问题。传统的RNN和LSTM虽然能够处理序列任务,但因为它们在处理序列时需要一步步前进,因此其他信息无法立即对其产生影响,当序列变长时,长距离依赖的信息很可能会被丢失。为了解决这个问题,Transformer模型被设计出来,内核思想是利用自注意力机制,这样模型可以直接对输入序列的任意两个位置建立直
采用分布式部署deepseek
慧香一格
AI 学习 分布式 deepseek
分布式部署DeepSeek涉及使用多个计算节点来加速模型训练或提升推理效率。下面是一个基本的指南,帮助您了解如何进行分布式部署。1.环境准备硬件需求:确保您的集群环境中有足够的GPU资源,并且所有机器之间可以通过高速网络互联。软件依赖:安装必要的库和工具,如PyTorch、Transformers等。特别地,对于分布式训练,还需要安装torch.distributed或者类似的库支持,例如Horo
huggingface/pytorch-image-models
GarryLau
ML&DL pytorch python huggingface
huggingface/pytorch-image-models1.使用技巧1.1.训练指令单卡:pythontrain.py--pretrained--input-size3224224--mean000--std111--batch-size128--validation-batch-size128--color-jitter-prob0.2--grayscale-prob0.2--gauss
PyTorch `.pth` 转 ONNX:从模型训练到跨平台部署
MO__YE
人工智能
PyTorch.pth转ONNX:从模型训练到跨平台部署在深度学习里,模型的格式决定了它的可用性。如果你是PyTorch用户,你可能熟悉.pth文件,它用于存储训练好的模型。但当你想在不同的环境(如TensorRT、OpenVINO、ONNXRuntime)部署模型时,.pth可能并不适用。这时,ONNX(OpenNeuralNetworkExchange)就必不可少。本文目录:什么是.pth文件
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.点击开