- 博客(82)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 激活函数中,tanh为什么优于sigmoid?
虽然sigmoid在一些简单问题中依然有效,但在深度学习,特别是含大量层或长序列模型中,tanh展现了其优越性。它们的选择取决于模型的具体要求、输入数据性质、训练数据量,以及系统最终设计目标。为了获得更优的训练性能,ReLU及其变种可能是更好的选择。通过tanh的零均值特性和优化特性,能够提升模型的训练效率和结果质量。高级设计过程中结合模型具体需求,也可探索其更多变种。
2025-03-12 10:36:58
778
原创 wordpress网站重定向次数过多
1.考虑是DNS设置错误,去控制台删除了不用的DNS解析设置2.安装SSL证书腾讯云教程:https://cloud.tencent.com/document/product/400/35243阿里云教程(更合适):https://help.aliyun.com/document_detail/102450.html3.能进网站了,但显示“Error Establishing a Database Connection”4.设置wordpress数据库:编辑wp-config.php,修改下列信
2022-02-16 21:20:27
2266
原创 #include 作用
#include 是一个预处理指令,作用是寻找指令后面<>或“”中的文件名,并把这个文件的内容包含到当前的文件中,被包含的文件中的文本将替换源代码文件中的#include指令。注意:#include 后面也可以不是头文件。如:// test.hint a = 2;// test.txt1235678// main.c#include "test.h"#inlcude "test.txt"int main(){ return 0;}gcc -E main.c -o
2021-12-15 17:32:26
3246
原创 STM32F103xC, STM32F103xD, STM32F103xE Clock Tree 时钟树高清图
自己打印用的,随手上传了上来。点击这里下载
2021-12-11 19:07:47
509
原创 STM内存分布与MDK:RO、RW、ZI、ROM
一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息,如下所示:linking...Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124After Build - User command \#1: fromelf --bin.\\build
2021-12-07 16:43:36
1022
转载 LeetCode704二分查找
转自代码随想录思路这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。例如到底是 while(left < right) 还是 while(left <= right),到底是right = middle呢,还是要right = middle - 1呢?大家
2021-10-23 20:35:05
112
原创 力扣151. 翻转字符串里的单词
力扣链接:151. 翻转字符串里的单词这一题我的解法里包含了多个子函数,可以说,这一题里面包含了好几个题目。这种解法思路清晰,容易理解,所以记录下来。C语言版:void swap(char* a, char* b){ char tmp = *a; *a = *b; *b = tmp;}char* reverse(char* s, unsigned int start, unsigned int end){ int i = start; int j =
2021-10-11 15:56:33
237
原创 原码、反码、补码
参考:https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html在计算机系统中,数值一律用补码来表示(存储)和运算。int main(){ unsigned char a = 255; char b = a; printf("%d\n", b);}程序输出 -1。是因为:a是无符号的,所以最高位也是数据位,而不是符号位。a的原码、反码、补码均为:1111,1111b = a 这一句只
2021-10-10 19:03:22
120
原创 C语言 | struct(结构体) 和 union(联合体)有什么区别
区别1.struct 的成员存放在不同地址上,union 所有成员存放在同一个地址空间。2.struct 的长度是所有成员所占空间之和,union 的长度是其占用空间最大的成员的长度。引出的几个问题问题1:union 的长度很容易看出来,那么 struct 的长度怎么算?例如,下面应该输出多少?struct Stu{ char sex; int age;};printf("sizeof(struct Stu) = %d\n", sizeof(struct Stu));答案是8。这就
2021-10-01 16:21:26
1741
原创 嵌入式开发板安装madplay播放mp3 - 方法二
使用Buildroot编译madplay把madplay复制到开发板上运行根据错误提示复制所需要的库到开发板上,可以放在开发板的 /usr/lib目录下
2021-09-28 09:48:59
575
原创 Buildroot编译单个模块
进入Buildroot主目录make menuconfig利用 / 搜索模块所在位置利用 Y 选中模块退出make menuconfig 界面make 模块名在 ./output/target/usr/bin 下可找到可执行文件, 可执行文件需要的库可以在./output/target/usr/lib下找到...
2021-09-28 09:46:23
3439
原创 selenium同意浏览器网页获取权限
在用selenium的webdriver打开网页时,可以用Options来提前设置参数,例如:from selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverchrome_options = Options()# 设置无界面运行chrome_options.add_argument('--headless')driver = webdriver.Chrome(executable_path='
2021-09-28 08:28:13
1268
原创 常见排序算法代码实例
1.基本概念时间复杂度:https://www.cnblogs.com/wonker/p/11236988.html空间复杂度:https://www.cnblogs.com/wonker/p/11238418.html稳定排序:假设序列中有两个值相等的元素,在排序后,如果这两个元素的相对前后位置没有发生改变,则是稳定排序。例如:int a = {11, 2, a, b,10};其中,a=b=3,排序后a = {2 ,a , b, 10, 11},而不是a = {2 ,b , a, 10, 11}。
2021-09-28 08:26:21
155
原创 alsamixer保存音量设置
首先使用 amixer 设置声卡,然后输入如下命令保存声卡设置alsactl -f /var/lib/alsa/asound.state store没有/var/lib/alsa/asound.state的话就新建一个。执行下面的命令加载配置:alsactl -f /var/lib/alsa/asound.state restore可以打开/etc/init.d/rcS 文件,在最后面追加如下内容: if [ -f "/var/lib/alsa/asound.state" ]; then
2021-09-25 17:53:53
2638
1
原创 嵌入式开发板如何自动登陆校园网实现上网
使用校园网的时候,需要登陆认证界面才能正常上网,但是开发板并没有浏览器什么的,所以思考是否可以通过别的方法来实现上网。后来便想到了使用抓包的方法。首先笔记本浏览器清除cookie,开启fiddler,然后打开校园网认证界面,登录账号并提交。然后,分析fiddler抓到的包,看看都提交了什么数据。最后,模拟上面的请求,使用程序提交登录数据。这里,我是用的是C语言:#include <stdio.h>#include <sys/types.h>#include <sys
2021-09-25 15:49:47
960
原创 Cloudflare出现521错误 | Wordpress
使用Cloudflare时,配置完成后出现了521错误,官网给出的解决方案如下:试过后并没有用。最后在Cloudflare的设置界面,把SSL设置为flexible后可以正常访问网页。
2021-09-21 20:28:57
5676
1
原创 嵌入式开发板安装madplay播放mp3 - 方法一
说明:按照下面的方法做完后,执行 ./madplay 1.mp3会报错:audio: /dev/dsp: No such file or directory由于我的板子上有aplay,所以可以执行madplay -o wav:- 1.mp3|aplay来播放。madplay及其依赖包下载:链接: https://pan.baidu.com/s/1kDI2w9l77VgX5EQVjXULPw 提取码: pmsc方法来自这里,仅修改了部分内容,记录用。感谢原作者。1.安装zlib用交叉编译工具编译z
2021-09-08 20:44:51
2017
原创 GCC指定自定义头文件路径
gcc编译时,可以使用 -I 指定自定义头文件路径。比如下面的文件结构中,main.c调用了a.h和b.h。test_folder├── input│ └── a.h├── main.c└── output └── b.h那么,命令应为:gcc -o test -I ./input/ -I ./output main.c注意,不能是gcc -o test -I ./input/ ./output否则,会找不到b.h...
2021-09-05 19:56:12
4685
1
原创 GDB调试简易步骤
编译时加入-g选项(必须):gcc -g -o test test.c开始调试:gdb test加入断点:b test.c:10运行:run逐语句:s逐过程:n退出:q更多命令可参考:GDB调试命令详解GDB Tutorial
2021-09-05 16:14:13
287
原创 wordpress设置固定链接后Apache Not Found 404
环境:ubuntu 20.04Apache/2.4.41解决方法输入命令sudo a2enmod rewrite,复制提示的命令,执行命令。sudo vi /etc/apache2/apache2.conf修改框柱的部分为All:保存文件,退出文件。重启apacheservice apache2 restart成功。...
2021-08-28 11:13:27
304
原创 中断中为什么不能sleep | Linux内核
在面试官:为什么在中断里不能sleep | Linux 内核一文中,作者逐层深入地讲解了为什么中断中为什么不能sleep,并给出了ISR 里处理耗时工作的解决办法,建议先行阅读。文中把问题“中断中为什么不能sleep”逐步精确为“为什么在 Linux 里,ISR 被设计成不能睡眠”,讲得很好。但是,对于接下来讲解为什么不能sleep这一部分,(可能是因为我操作系统基础不好)对我来说讲解逻辑却显得不怎么清晰。下面就记录一下自己的理解。结合下图讲解一下。假如系统正在执行thread 1,其中有操作criti
2021-08-28 10:01:24
764
1
原创 wordpress把https改为http
mysql -u root -p进入mysqlshow DATABASE;查看数据库use your_wordpress; 进入数据库select * from wp_options limit 1; 显示你的wp_optionsUPDATE wp_options SET option_value="http://your_domain" WHERE option_name="siteurl";更改为http参考链接:https://blog.youkuaiyun.com/weixin_44175439/a
2021-08-25 18:26:41
780
原创 Linux多线程条件变量pthread_cond_wait解析
条件变量的用法Linux条件变量详解:http://c.biancheng.net/view/8633.html里面提到:pthread_cond_wait()函数会以“原子操作”的方式完成“阻塞线程+解锁”或者“重新加锁+解除阻塞”这两个过程(其他教程只提到了“阻塞线程+解锁”这一步是原子操作)。条件变量难点解析Linux 多线程条件变量同步:https://www.linuxidc.com/Linux/2016-11/136664.htm关于linux条件变量的深入探讨:https://mp
2021-08-24 19:07:25
400
原创 NFS挂载时一直没有同步文件
NFS安装后,挂载时有以下注意事项:开发板和Linux应该能互相ping通。在 mount 与 umount(解除挂载)操作时,用户的当前路径不能是操作的目标路径。执行挂载命令,如mount -t nfs -o nolock,vers=3 192.168.0.103:/home/book/nfs_rootfs /mnt时,命令中的IP192.168.0.103和后面的冒号:之间不能有空格。...
2021-08-13 13:56:46
1402
原创 C++ string.find问题
C++ string.find问题1 遇到的问题2 问题答案3 原因分析1 遇到的问题int main(){ string s = "abcbb"; if (s.find('d') < 0) { cout << "未找到" << endl; } else { cout << "找到" << endl; }}运行程序,输出 “找到”。2 问题答案程序改为:int main(){ string s = "abcbb
2021-08-13 12:54:29
609
原创 C++11标准中的alignas
上篇文章中留下了两个问题,这里终于有了答案。C++11标准中,对alignas的说明在这里,这里是中文版。在文档中,并没有提到像网上其他资料说的那样,alignas的参数只能是8,16,32,64,128等,且最小是8。经过上机测试,alignas的参数必须是 2 的幂,也就是说,最小可以是0。写入不是 2 的幂参数会报错。写入参数合法但是小于结构体自身对齐值时,alignas设置无效。#include <iostream>using namespace std;#define f
2021-08-09 13:57:53
1369
1
原创 C语言结构体字节对齐问题
C/C++结构体字节对齐问题1 前言2 举例3.其他1 前言对于结构体字节对齐问题,我发现我一直有一个误区,正是这个误区,给我带来了很大困扰,今天突然顿悟,在此记录一下,希望能帮到大家。2 举例#include <stdio.h>#define field_offset(s,f) (int)(&(((struct s *)0)->f))struct AD { int a; char b[13]; double c;};#pragma pack(push)#prag
2021-08-09 12:58:52
651
原创 Linux 从零写i.mx283A开发板GPIO/LED驱动
1.背景最近在学Linux驱动开发,用的是周立功的i.mx283A开发板。在周立功的驱动教程里,他对GPIO的操作是直接调用的库函数,而我想从寄存器入手来写,这里便记录一下操作过程,更是记录下我解决问题的方法。2.资料准备首先,要准备好i.mx283A的数据手册及开发板的原理图。3.动手写驱动3.1 确定LED引脚首先查看开发板原理图,确定LED所在引脚。这里,我选用了LED1,所在引脚为GPIO3_26。查看开发板原理图以及i.mx283A的数据手册,确定GPIO3_26即为数据手册中的E8
2021-08-06 22:57:13
537
原创 周立功Linux283A开发板使用i2c-tools
1.下载i2c-tools下载地址2.根据自己的开发板设置交叉编译工具链(已经把交叉编译工具链添加到环境变量则不用设置)3.修改Makefile进入i2c-tools目录,vi Makefile4.make执行make USE_STATIC_LIB=1 CC=arm-fsl-linux-gnueabi-gcc5.把生成的可执行文件复制到单板上6.测试如:./i2cdetect...
2021-08-04 21:35:17
241
原创 一文写出Linux串口应用编程
Linux下串口编程,可以使用简单的open ,read, write, close方法,但是没有配置串口属性。所以,更多的我们是需要学习怎么配置串口的数据位、校验位等属性。这里对串口协议,编程方法,函数参数等有极详尽的解释。这里有对函数参数的中文解释。这里有例程,可以帮助你快速写出测试程序。...
2021-08-04 18:41:51
299
原创 ubuntu打开/关闭虚拟终端/dev/tty
Ctrl + Alt + F3-F6打开一个虚拟终端(看到有的博客说Ctrl + Alt + F2也可以,但是我的ubuntu20.04并没有反应)例如:Ctrl + Alt + F3打开一个虚拟终端Ctrl + Alt + F4再打开一个虚拟终端Ctrl + Alt + F1回到图形化界面/dev/ttyS0 电脑串口/dev/tty 某个程序自己的终端。/dev/tty0 前台程序的终端/dev/tty1,/dev/tty2,/dev/tty3……虚拟终端...
2021-08-04 13:27:21
2976
原创 Linux TCP server/client例程
1.服务器端#include<stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#define SERVER_PORT 8080#define MAX_SERVERS 10int m
2021-08-03 18:45:25
636
原创 韦东山设备信息查询例程学习
1.查询 阻塞机制#include <linux/input.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/ioctl.h>#include <stdio.h>int main(int argc, char **argv){ int fd; int ret; struct input_id
2021-08-02 21:41:07
79
原创 为什么poll/select在open时要使用非阻塞NONBLOCK
1.背景在学习获取设备信息的四种方式(查询,休眠-唤醒,poll,select)时,发现在使用poll和select时,需要在open时使用1O_NONBLOCK1参数。由于我刚开始没注意这个问题,导致实验现象不正常,这里记录一下。2.不使用O_NONBLOCK#include <linux/input.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include
2021-08-02 21:28:48
923
原创 详解判断大小端的方法
1.大小端小端存储:数据低字节保存在低地址中,高字节保存在高地址中。大端存储:数据低字节保存在高地址中,高字节保存在低地址中。2.判断方法这里给出一种常见的方法,代码如下:#include <stdio.h>void test1(void){ union T { int a; char b; }t; t.a = 1; if (t.b == 1) { printf("小端\n"); }
2021-07-30 15:47:44
1895
原创 SPI与IIC异同
1.相同点均采用串行、同步的方式均采用TTL电平,传输距离和应用场景类似均采用主从方式工作2.不同点IIC为半双工,SPI为全双工IIC为2线制,SPI为4线制IIC速度为100Kbps- -3.4Mbps,SPI速度为几MHz - -几十MHzIlC有应答机制,SPI无应答机制IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送片选信号来寻址IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可自己设置...
2021-07-30 10:28:13
1240
原创 UART的奇偶校验
1.奇校验当数据位中“1”的个数为奇数时,校验位为“0”,否则为“1”。2.偶校验当数据位中“1”的个数为偶数时,校验位为“0”,否则为“1”。
2021-07-29 20:00:34
3450
原创 实现常用C语言字符串处理函数
1.strcpy()char *my_strcpy(char *s1, const char *s2){ char* p1 = s1; const char* p2 = s2; while (*p1++ = *p2++) { } return s1;}2.strlen()unsigned int my_strlen(const char* s){ const char* p = s; while (*p++) {
2021-07-29 17:00:44
118
原创 为什么指针做形参没有改变对应的值
1 引例首先看这样一个程序,思考一下它的输出是什么:#include <stdio.h>void test1(int a[], int *p){ p = &a[2];}void test2(){ int a[] = { 1,2,3 }; int b = 5; int* p = &b; test1(a, p); printf("%d ", *p);}int main(void){ test2();}你
2021-07-25 19:52:56
1105
1
STM32F103xC, STM32F103xD, STM32F103xE Clock Tree 时钟树高清图
2021-12-11
Apache后端请求不能转发到指定端口
2022-05-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人