Bi-LSTM(Attention)的PyTorch实现
实现如下,代码解释以注释的方式呈现
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519 ...
C语言实现波士顿房价预测
波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“Hello World”。和大家对房价的普遍认知相同,波士顿地区的房价受诸多因素影响。该数据集统计了13种可能影响房价的因素和该类型房屋的均价,期望构建一个基于13个因素进行房价预测的模型,如 下图所示。
对于预测问题,可以根据预测输出的类型是连续的实数值,还是离散的标签,区分为回归任务和分类任务。因为房价是一个连续值,所以房价预测显然是一个回归任务。下面我们尝试用最简单的线性回归模型解决这个问题,并用神经网络来实现这个模型。
线性回归模型
假设房价和各影响因素之间能够用线性关系来描述:
$$
y = \sum_{j=1}^M w_jx_j + b (公式1)
$$
模型的求解即是通过数据拟合出每个$w_j$和$b$。其中,$w_j$和$b$分别表示该线性模型的权重和偏置。一维情况下,$w_j$ 和 $b$ 是直线的斜率和截距。
线性回归模型使用均方误差作为损失函数(Loss),用以衡量预测房价和真实房价的差异,公式如下(其中$\widehat Y_i$为预测值 $Y_i$为实际值):
$$
s = \frac{1}{n}\ ...
easy库的使用
C++easy库
加载动画
easyx库本身并没有给出gif的加载函数,所以我们需要通过另一种方式实现gif的“播放”
通过将gif图提取出相应关键帧,然后对关键帧进行逐帧播放
以下是代码示例
123456789101112131415161718192021222324252627282930313233343536373839#include <graphics.h>#include <conio.h>#include <stdio.h>#include <iostream>IMAGE images[92];//92张关键帧bool isLoaded = 0;void loadImg() { wchar_t filename[20]; for (int i = 0; i < 92; i++) { //这里我是将原有的gif图拆分为了92张关键帧 wsprintf(filename, _T("../gif/%d.png"), i + 1); ...
edgeboardFZ3A相关问题
FZ3A
Q:在程序make阶段,出现了串口库库文件缺失导致的函数定义未被实现的报错:
A:安装相关串口库,以下是相关文件
libserial-dev_1.0.0-4_arm64.deb
libserial1_1.0.0-4_arm64.deb
gcc-10-base_10-20200411-0ubuntu1_arm64.deb
libgcc-s1_10-20200411-0ubuntu1_arm64.deb
libc6_2.27-3ubuntu1_arm64.deb
libgccjit-7-dev_7.5.0-6ubuntu2_arm64.deb
gcc-7-base_7.5.0-6ubuntu2_arm64.deb
libgcc-7-dev_7.5.0-6ubuntu2_arm64.deb
libasan4_7.5.0-6ubuntu2_arm64.deb
libubsan0_7.5.0-6ubuntu2_arm64.deb
以上文件存在依赖关系,顺序已经忘了,请自行尝试。
并修改CMakeList.txt文件,加入:
set(SERIAL_LIBRARY “/usr/li ...
Predict.py的编写
你需要注意的是:
此文章仅为ChatGpt的回答,是本人用于理解paddle相应模块而CV过来的,并不一定具有实际效益
一种可行的Predict.py
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182import argparseimport osimport cv2import numpy as npimport paddlefrom paddle.vision.transforms import Compose, Normalizefrom paddledet.utils.logger import setup_loggerfrom paddledet.models.detectors import YOLOv3from paddledet.datasets.builder import build_datasetf ...
Paddle环境搭建
此文章以python的搭建为例
一、安装Anaconda
https://www.anaconda.com
注意勾选All User
这里最好是勾选第一个选项,其目的是将anaconda添加到系统变量中,这样我们可以直接通过cmd调用conda,更加方便
然后你就可以使用anaconda来设置不同的环境
比如这里我们建一个专门用于Paddle的环境(控制台输入)
conda create -n PaddleDetection python==3.7创建PaddleDetection环境,并要求其为python3.7版本
conda activate PaddleDetection进入所创建的PaddleDetection环境中
![](/img/page/百度Paddle/conda activate.png)
当目录左侧有(xxxxx)显示时,就表明你已进入该环境,可以基于该环境进行操作,pip install / pip uninstall的操作也只会影响该环境
注意:当左侧显示(base)时,这是默认环境
二、安装CUDA
你的显卡必须是NVDIA显卡!!!
你可 ...
百度Paddle模型训练
注意:本说明并没有详细谈及各参数的调整
对于多卡训练,只需要将python tools/trainxxxx改为:
python -m paddle.distributed.launch --selected_gpus 0,1,2,3 tools/trainxxxxxx
其中0,1,2,3参数是因为有4张卡,若是两张卡训练,此处应写0,1
你可以通过nvidia-smi查询显卡数量
以百度飞浆推出的PaddleDetection目标检测开发套件为例
项目架构
这是其Github项目文件
我们将要用到的基本架构如下:
对于数据集
其中,car_train是我们自己的数据集,这里的数据集格式为VOC
JPEGImages存放所有数据集图片,Annotations中存放所有标注文件
你可以通过labelimg软件进行数据的标注
当我们有了这样的数据集后,就可以准备进行模型训练了
模型训练前的准备
我们这里使用的是yolov3模型,你可以在克隆下来的PaddleDetection的:PaddleDetection/configs/中找到它
但是可以发现,在这些yml中,没有我们 ...
GMD09601-0.96OLED显示屏
GMD09601-0.96OLED显示屏
驱动芯片:SSD1306
支持接口:SPI/IIC
分辨率:128*64
接口定义
GND:电源地
VDD:电源正(3.3V ~ 5V)
SCK:时钟线
SDA:数据线
RES:复位线
DC:数据/命令
CS:片选
对于096 OLED屏幕接线
F207
GND 电源地
VCC 电源正(3.3~5V)
D0(SCL) SCK管脚
D1(SDA) MOSI管脚
RES(RST) 用来复位(低电平复位)
DC(D/C) 数据和命令控制管脚 1表示数据 0表示命令
CS(NSS) 片选管脚
1234567GND -> GNDVCC -> 3V3D0 -> PA5D1 -> PA7RES -> PA4DC -> PA6CS -> NONE
【LeetCode 1617】统计子树中城市之间最大距离
题目描述
给你 n 个城市,编号为从 1 到 n 。同时给你一个大小为 n-1 的数组 edges ,其中 edges[i] = [ui, vi] 表示城市 ui 和 vi 之间有一条双向边。题目保证任意城市之间只有唯一的一条路径。换句话说,所有城市形成了一棵 树 。
一棵 子树 是城市的一个子集,且子集中任意城市之间可以通过子集中的其他城市和边到达。两个子树被认为不一样的条件是至少有一个城市在其中一棵子树中存在,但在另一棵子树中不存在。
对于 d 从 1 到 n-1 ,请你找到城市间 最大距离 恰好为 d 的所有子树数目。
请你返回一个大小为 n-1 的数组,其中第 d 个元素(下标从 1 开始)是城市间 最大距离 恰好等于 d 的子树数目。
请注意,两个城市间距离定义为它们之间需要经过的边的数目。
示例 1:
输入:n = 4, edges = [[1,2],[2,3],[2,4]]
输出:[3,4,0]
解释:
子树 {1,2}, {2,3} 和 {2,4} 最大距离都是 1 。
子树 {1,2,3}, {1,2,4}, {2,3,4} 和 {1,2,3,4} 最大距离都为 2 ...
C语言学习相关
函数递归
函数递归,简单的理解就是,自己调用自己,直到遇到边界条件,停止递归
比如我们想实现一个阶乘函数
12345678910111213141516171819202122232425262728int n = 5;//求n! 这里是5!//不使用递归,一种可行的做法是这样int ans = 1;for (int i = 1; i <= n; i++) { ans *= i;}printf("%d! = %d", n, ans);//使用递归int _n(int x) { if (x == 0)return 1; return x * _n(x - 1);}printf("%d! = %d", n, _n(n));/*对于 _n(5),我们拆分一下它自己调用自己的过程↓_n(5) 5 * _n(4) 4 * _n(3) 3 * _n(2) 2 * _n(1) 1 * _n(0) 1达到边界,返回值为:5*4*3*2*1*1的 结果 (是,结果,不是 ...