Linux CMake工程目录结构
Linux CMake工程目录结构 主文件目录 1234./lib/./src/./build./CMakeLists.txt ./CMakeLists.txt 12345678CMAKE_MINIMUM_REQUIRED( VERSION 3.10 )PROJECT(MAIN)ADD_SUBDIRECTORY(./lib )ADD_SUBDIRECTORY(./src) ./lib/CMakeLists.txt 12345AUX_SOURCE_DIRECTORY(. DIR_LIB_SRCS)SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)ADD_LIBRARY(LIB STATIC ${DIR_LIB_SRCS}) ./src/CMakeLists.txt 12345678910INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib) SET(EXECUTABLE_OUTPUT_PATH...
C++主存层面数据交换
C++ 互换指针指向内存结果 1. 互换指针指向内存结果 将命令参数前两个值在主存中互换并输出。 1234567891011121314#include <iostream>#include "mySwap.hpp"int main(int argc, char** argv){ std::cout<<"Origin info is: "<<std::endl; std::cout<<"a: "<<argv[1]<<" \tb: "<<argv[2]<<std::endl; mySwap(argv[1],argv[2]); std::cout<<"Has been swaped info is: "<<std::endl; std::cout<<"a:...
Sentiment Analysis For RNN
Sentiment Analysis For RNN 循环神经网络进行情感分析 引言: 对于情感分析,如果简化来看可以分为正向情绪和负向情绪,我们可以将情感分析视为文本分类任务,因此我们可以将预训练的词向量应用于情感分析。我们可以用预训练的GloVe模型表示每个标记,并反馈到RNN中。 RNN表征文本 在文本分类任务中,要将可变长度的文本序列转为固定长度。可以通过nn.Embedding()函数获得单独的预训练GloVe,再去通过双向LSTM,最后在去通过一个全连接层做一个二分类,即可实现RNN表征文本。 123self.embedding = nn.Embedding(vocab_size, embed_size)self.encoder = nn.LSTM(embed_size, num_hiddens, num_layers=num_layers,bidirectional=True)self.decoder = nn.Linear(4 * num_hiddens, 2) 1234embeddings =...
VGG16实现分类任务
VGG16实现分类任务 VGG是2014年由牛津大学著名研究组VGG(Visual Geometry Group)提出,斩获当年ImageNet竞赛中定位任务第一名和分类任务第二名。 原理图 20211107_1 原理简述 例如有张224x224的RGB图片,我们让他通过两个卷积核为3的卷积层,再通过最大池化层(核尺寸为2,步距为2)。至于卷积层的输入输出维度,参考下图,我们一般常用VGG16模型,最终用多个FC实现分类,也可将FC换成卷积核为1的卷积层。 数据集 同样选用本人常用的海贼王数据集来测试,可以根据个人需求修改。 下面提供一个简单数据集。 Kaggle的鸟儿分类数据集,共315个分类 https://www.kaggle.com/gpiosenka/100-bird-species 可以用kaggle命令选择下载 1kaggle datasets download -d...
Perceptron
Perceptron 原理 简单的感知机可以看作一个二分类,假定我们的公式为 f(x) = sign(w *x + b) 我们把 -b 做为一个标准,w* x 的结果与 -b 这个标准比较, w*x > -b, f(x) = +1 w *x < -b, f(x) = -1 不难看出w是超平面的法向量,超平面上的向量与w的数量积为0。因此这个超平面就可以很好的区分我们的数据集。 而感知机就是来寻找w和b 优化方法 优化方法我们现有的方法比较多,诸如GD、SGD、Minibatch、Adam 当然我们的损失函数也包含多种,常见的有MSE,...
SoftMax指北
SoftMax指北 softmax函数,又称归一化指数函数。是将多分类的结果用概率的形式表示出来,而各种预测结果概率和为1,下图为SoftMax的计算方法。 e的zi次方保证了结果非负,除以总和保证了总和为1,这样就可以得出近似的概率。 代码示例 这边选用Fashion-Mnist作为示例. 第一步下载数据集 1234train_data = torchvision.datasets.FashionMNIST("./data/mnist",train=True,download=True)train_loader = torch.utils.data.DataLoader(train_data,batch_size = 8, shuffle = True)val_data = torchvision.datasets.FashionMNIST("./data/mnist",train=False,download=True)val_loader =...