- 博客(91)
- 资源 (1)
- 收藏
- 关注
原创 git中的rebase命令与merge命令
为了保证你的特性分支可以平滑地集成回 master,你可能需要将你的分支变动重新基于 master 分支的最新状态。合并操作通常会创建一个新的 合并提交(merge commit),这个提交有两个父提交:一个是 feature 分支的前一个提交,另一个是 master 分支合并时的最后一个提交。②减少冲突:通过定期将 master 分支的更新 rebase 到你的开发分支,可以在合并(merge)这些分支时减少冲突,因为你的分支已经预先解决了与 master 分支的潜在差异。有的,就是merge命令。
2024-05-13 17:07:27 910 1
原创 python中(n, 1)和(n,)之间的区别
如果提供了 (n, 1) 形状的数组,可能会引起错误或不符合预期的行为。(n, 1) 表示一个二维数组,其中 n 是行数,1 是列数。在 (n, 1) 形状的数组中,你需要使用两个索引来访问元素,例如 array[i, 0]。二维 (n, 1) 数组在进行某些操作时会遵循矩阵的运算规则,例如在矩阵乘法中。一维 (n,) 数组在运算时更加灵活,能够广泛地应用在各种需要一维序列的场合。在 (n,) 形状的数组中,你只需要一个索引,例如 array[i]。(n,) 是一维的,这是最基本的数组形式。
2024-03-09 15:07:17 622
原创 AttributeError: module ‘tensorflow‘ has no attribute ‘__version__‘
force-reinstall:通常,如果已经安装了请求的包的最新版本,pip将不会重新安装包。使用这个参数,pip会忽略包的当前安装状态,强制重新下载并安装指定版本的包,即使它已经是最新版本。这对于解决安装问题或损坏的包文件特别有用。可能的原因是环境中安装了与标准TensorFlow包不同的包,或者可能是TensorFlow没有正确安装。解决方法如下,亲测有效。
2024-02-25 19:25:37 1855
原创 简单版 git快速上手使用 clone项目 新建/切换分支 提交修改
Git是一个广泛使用的版本控制系统,允许多个用户跟踪文件的更改,并协作开发项目。首先确定自己电脑已经安装了git,具体安装步骤请查找教程,应该不难。以windows电脑为例,安装完后在搜索栏搜索git会出现先解释一下这些应用区别和功能:Git Bash: 提供了一个Bash环境,在Windows系统中运行Git命令行工具。Bash是一种Unix shell和命令语言,Git Bash是专门为Git命令优化的。
2024-02-25 14:54:55 669
原创 静态方法(static methods)和非静态方法(instance methods,也叫实例方法)
在Python中,实例方法(instance method)需要通过类的实例来调用,因为它们的第一个参数通常是self,代表类的一个实例。这意味着实例方法可以访问和修改实例的状态。而静态方法(static method)则不接收self参数,它们既可以通过类名直接调用,也可以通过类的实例来调用,但它们无法访问或修改类的状态。
2024-02-21 22:29:36 347 1
原创 神经网络中的前向传播(Forward Propagation)和后向传播(Backward Propagation)
有时候会搞混这两个概念。什么是前向传播?不是只有后向传播吗?后向传播好像是用来更新模型参数的,前向传播是什么东西?
2024-02-13 00:32:04 1899
原创 神经网络训练中的epoch和batch概念
例如,如果你有1000个训练样本,而你的batch size是100,那么需要10个batch来完成一个epoch的训练。Batch size是一个重要的超参数,因为它直接影响到模型权重更新的次数和每次更新时使用的样本数。通常,在训练神经网络时,会设置一个epoch参数和一个batch size参数,并在每个epoch内遍历多个batch。在一个epoch中,网络会对每一个训练样本学习一次,然后更新权重。总是忘了又忘,再写一遍加强记忆。
2024-02-11 16:40:55 1177
原创 python进行独立样本t检验
ttest_ind会返回这两组数据的t检验值和p值。t值表示两个样本均值之差距离零假设(即两组数据的均值没有差异)的标准化距离。负号表示第一个样本的均值小于第二个样本的均值。p值(p-value)表示在零假设为真(即两组数据的均值没有差异)的条件下,观察到的统计量或更极端的值出现的概率。在统计学中,通常使用一个阈值(显著性水平,如0.05)来判断p值是否足够小以拒绝零假设。如果p值大于0.05,没有足够的证据拒绝零假设,即没有足够的证据表明两组数据的均值存在显著性差异。不涉及原理,快速上手运用和理解。
2024-02-06 00:40:46 562
原创 jupyter notebook删除kernel & conda 删除虚拟环境
如果你在 base 环境中运行该命令,它将列出在 base 环境中注册的 Jupyter 实例知道的所有内核。如果你在虚拟环境中运行该命令,它将列出在那个特定虚拟环境中注册的 Jupyter 实例知道的所有内核。不过,通常,Jupyter 内核是全局注册的,所以无论在哪个环境中运行 jupyter kernelspec list,都会看到相同的列表。该命令将列出所有已注册的 Jupyter 内核,包括在 base 环境和所有虚拟环境中安装的内核。如果想完全删除与内核相关的环境,需要单独管理那个环境。
2024-01-22 12:18:05 1543
原创 解决 conda新建虚拟环境只有一个conda-meta文件&conda新建虚拟环境不干净
像以前一样通过conda 新建虚拟环境时发现环境一团糟,首先新建虚拟环境这时候activate newenv,通过pip list,会发现有很多很多的包,都是我在其他环境用到的。但诡异的是,来到anaconda下env的目录,却发现newenv下只有一个conda-meta文件。这到底是为啥?
2024-01-20 17:10:10 2045 1
原创 np.concatenate函数
其中axis(读着aeksis,记住这里的x发音ks就可以)为0和1时分别代表不同的拼接方向。总是记不住axis对应的方向,看到官网的examples觉得很容易懂,记录一下。当axis为0时,数组沿着横轴拼接,这就要确保拼接的数组a和b有相同维度的列数。当axis为1时,数组沿着纵轴拼接,这里就要确保a和b有相同维度的行数。concatenate函数沿着某axis轴将a1、a2等数组进行合并。
2024-01-11 15:28:28 506
原创 word文档插入公式自动编号
ps:还有一个常用快捷键,有时候需要检查之前输入的域公式是否正确,除了可以alt+f9进入域模式查看域代码外,还可以按下shift+f9显示光标处的局部域代码。按两次alt+f9就可以看到公式后面是一个编号了,让编号正常的方式是选中含有公式编号的文本,右键更新域,就可以看到自动编号了。也就是先在章节标题的光标末尾按下插入域的快捷键,输入视频指示的公式。然后在每个章节的公式光标后面同样按下插入键,根据视频指示输入{SEQ seq \c}-{SEQ eq}首先是插入域的快捷键:ctrl+f9。
2023-12-30 23:23:17 677
原创 python中的lambda关键字
匿名函数就是没有函数名的函数。平时写一个实现某种功能的小函数,都需要def func_name(**args,**kewargs),有了lambda,就可以省略这个定义的操作啦。map() 函数是Python内置的一个高阶函数,它接收一个函数和一个或多个可迭代的对象作为参数,然后将该函数应用到所有可迭代对象的对应元素上,返回一个新的可迭代对象(通常是一个列表)所以你,这个lamda就是用来创建一个功能比较简单,一个表达式就能写完的函数。也即,lambda是一种关键字,这种关键字的作用是创建匿名函数。
2023-12-07 11:59:48 598
原创 python中的迭代器、生成器和装饰器(一)
首先,最后两句应该能看懂,平时编程的时候也经常在def一个函数之前加上@xxx_decorator,这也就是装饰器的用法啦,通过在自定义的函数函数前面加上@装饰器函数名,就可以实现装饰的效果(装饰装饰,说白了就是一些锦上添花的工作,所以常用的装饰器就是做一些日志记录、性能分析等小工作)。下面看下log_decorator内部,也就是代码的第一部分,先看整体,该函数传入的参数为一个func(函数),返回的是一个wrapper(一个包装了func的函数)。今天正好复习到这里,把我对这几个概念的理解记录一下。
2023-12-06 21:08:59 508
原创 python初始化矩阵相关
第一种初始化方法创建矩阵时使用了相同的子列表对象。在Python中,使用 [0] * n 这样的方式创建子列表时,实际上是对相同的子列表对象的引用。因此,当你修改其中一个子列表的元素时,其他子列表也会受到影响。以前经常混用也没发现什么问题,直到昨天debug的时候发现第一种初始化之后对矩阵进行赋值时混乱的,比如matrix[0][1]=2会导致所有行的第二列都变成2。为了避免这种问题,可以使用列表生成式来创建,也就是第二种方法,确保每个子列表都是独立的对象。下面这张图就非常清晰易懂啦。
2023-12-03 12:39:05 1176
原创 result.append(path[:]) 和 result.append(path) 之间的区别
result.append(path[:]): 这样使用切片操作创建了 path 列表的浅拷贝,然后将拷贝后的列表添加到 result 中。这样,result 中存储的是一个新的列表对象,而不是 path 的引用。在许多情况下,特别是在处理树形结构等递归问题时,使用 path[:] 是一个常见的技巧,以确保每个路径的副本都是独立的,不受后续修改的影响。result.append(path[:]) 和 result.append(path) 之间有一个重要的区别,这涉及到对列表的浅拷贝。
2023-11-25 19:29:55 824
原创 关于python中的nonlocal关键字
如果在 inner_function 中不使用 nonlocal,而直接对 x 进行修改,Python 将认为 x 是一个新的局部变量,并在 inner_function 中创建一个新的局部变量 x,而不会修改外部函数 outer_function 中的 x。总的来说,对于可变对象,你可以在函数内部修改它们的值,而不需要 nonlocal 关键字。如果 x是一个不可变对象,例如数字、字符串或元组,你将需要使用 nonlocal 关键字,因为对于不可变对象,重新绑定变量是唯一的方式来修改它们的值。
2023-11-25 17:39:55 482
原创 python中的__name__是个啥?
这样,当你直接运行模块时,这些代码会被执行,但如果你将模块导入到其他地方,这些代码就不会执行。通过这种机制,你可以将模块中的功能区分为两种类型的代码,使代码更具模块化和可重用性。这样一来,当你希望某个模块在被直接运行时执行一些特定的操作,但在被其他模块导入时不执行这些操作。所以可以简单的理解:脚本就是广义的py文件(py文件也就是Python文件),模块是狭义的py文件,它们都是py文件。模块(module):模块也是py文件,只不过这个py文件有概念上的规范和限制,不是所有py文件都可以叫模块,
2023-08-19 16:44:45 1250 1
原创 TensorFlow虚拟环境安装/pip install 与 conda install区别/jupyter kernel的添加与删除
当你pip list时,那些包有些是在Anaconda3\envs\tf\Lib\site-packages,有些是在C:\Users\username\AppData\Roaming\Python\Python38\site-packages,所以有时候会看见某个库有两个版本同时存在,这样也会造成很多包的不兼容。突然,我想到了加–user可以把包放在c盘的AppData\Roaming\Python\Python38\site-packages里,并且这个路径下的包虚拟环境也是可以用的。
2023-04-21 15:48:42 1047 1
原创 jupyter notebook重装及遇到的问题
安装成功了在终端输入jupyter notebook,报错,显示ModuleNotFoundError: No module named ‘zmq.asyncio’,一开始以为是zmq库没有装上,于是pip install zmq,但是报错AttributeError: ‘WindowsPath’ object has no attribute ‘read_text’。最后终于pip install zmq成功了。所以zmq和pyzmq的关系是什么?(安装的时候不能连vpn,不然容易报错)
2023-04-11 22:13:19 1326
原创 Python如何自制包、如何安装自己的包并导入
首先科普一下包和模块的概念:在Python中,包是一个包含多个模块的目录,而模块则是一个单独的文件。当一个目录下面有一个__init__.py文件时,这个目录就可以被认为是一个包。子包就是一个包中包含的另一个包,可以认为是包的嵌套。例如,一个名为mypackage的包中包含了一个名为subpackage的子包,subpackage中也可以包含多个模块。关于setup文件和requirements文件的编写,自行网络搜索(最主要的就是说明你写的这个sss包用到了哪些Python模块)
2023-03-14 15:57:24 2351 1
原创 面向对象和面向过程的区别(内含实际解释)
开发者需要将程序设计成一系列的步骤,其中每个步骤都是输入一些数据,处理这些数据,然后输出结果。这种方法的优点是程序结构清晰,易于实现,但不够灵活和可维护。通常情况下,面向对象编程比面向过程编程更加复杂,需要更多的设计和开发时间。但是,面向对象编程能够更好地处理大型项目,能够更好地分离程序的不同部分,并且能够更好地应对需求变化。这种方法的优点是易于扩展和修改,能够提高代码的可重用性和可维护性。面向对象编程和面向过程编程都是编程范式,它们描述了编写程序时的不同思考方式和设计方法。
2023-02-14 13:53:55 1961
原创 nvidia control panel下载与安装
通过microsoft应用商店方式获取是最好的(搜nvidia control panel)(其他的方法不太好,后面会出很多问题),但这个应用商店似乎一直刷不出来。尝试各种办法,最后得到了解决。
2023-02-08 22:51:30 2411
原创 keras.layers.Conv1D中卷积核参数kernel_size的理解
我们知道二维卷积中kernel_size就是二维的,对应于感受野的大小,conv1d的kernel_size中只需要填一个数字,而不是二维的数组,是因为一维卷积的kernel_size默认为(kernel_size,你输入数据的列的维度)。举例,输入维度为(xxx,40,7),conv1d(16, 3, input_shape=(40, 7))其实就相当于二维卷积,只不过卷积核(x,y)的y默认就是输入数据(xxx,x,y)的y。那么输入数据进入卷积层后输出的维度为(xxx,40,16)
2023-02-06 12:08:41 3023 1
原创 python安装完虚拟环境后导入tensorflow报错/import keras报错
后面我的还是报错,缺少dll文件,发现自己没安装cuda和cudnn。看c盘的program files文件夹下是否有NVIDA GPU computing toolkit文件夹,如果没有,可以安装下面这个教程一步步安装。最后导入tensorflow成功,但是导入keras还是有问题。降低numpy的版本,好像1.24.0版有很多问题。好像是新版该规则了,换一下写法就行。
2023-02-03 21:36:10 1159
原创 win10下firefox和chrom都能正常上网,但edge不行,设置方法
但是改了之后edge还是没反应,于是自己在edge的设置那里瞎捣鼓,发现把这一栏勾选去掉就能正常上网了。
2023-01-13 14:16:27 3843 2
原创 matlab支持向量机SVM工具包(Libsvm)的安装
其中编译器的安装,可以直接在报错的时候点击那个链接,安装matlab官方指导进行安装,很简单。
2022-12-13 20:41:34 1309
原创 matlab修改图例/图注/legend中线条的粗细
lengend中的线条粗细无法通过lengend的输入参数来设置,这个粗细是由画图时plot中linewidth的大小决定的。plot时选用不同粗细的宽度,得到的图例线条宽度也是不同的因此,要修改只能修改plot是linewidth的大小。
2022-12-07 15:28:11 10688
原创 谷歌浏览器无法连接到网络的解决办法
电脑可以正常上网,其他浏览器也可以打开网页,甚至谷歌浏览器换成百度搜索引擎也能正常使用,但我以前用Google引擎也是能正常使用的,问题就出现在我使用了一下vpn,然后谷歌浏览器就没法工作了,重启也没用。网上搜了很多方法,清楚浏览器数据?修改dns啥的也没用,下面这个有用,找到网络和Internet设置,点击Internet选项,找到连接那一栏,把代理服务器的勾选取消,确定,浏览器可以正常使用了。
2022-09-11 11:12:18 21497 5
原创 关于df[‘某一列名’][序号]
如图所示,当我选中了某一列,发现索引0是正常的,索引1居然报错,考虑到df[‘latitude’]是series类型,我还去搜了series的索引规则,正当我走投无路的时候,发现df1因为前期处理,索引是乱序的,索引1不存在,所以报错。也就是说,这种通过选取列名再索引的方式是通过索引该列的序号来实现的。...
2022-07-28 17:01:41 408
原创 pandas基础
#df数据结构及其属性df=pd.read_csv(‘某某path’)df.head(n)#可以只显示前面n行df.info()#显示行的信息(总共几行),列的信息,每一列的名称,数据类型(浮点数、整数还是字符串),这一列有多少个数据(可结合总行数判断这一列是否存在缺失值)df.index#显示索引值df.columns#返回列名的数组df.dtypes#显示每一列及其数据类型se=df['某一列名']#取某一列的数据,se为pandas中的series数据结构,series为datafram
2022-04-15 13:01:12 146
原创 numpy基础大全(创建、索引、常用函数)
numpy的数据结构:array。array的属性:shape,ndim,size,dtype。创建array的方式:array支持的函数和操作:
2022-04-13 16:45:18 397
原创 matplotlib绘图
用matplotlib画图总是陷入这样的循环:某段时间需要处理数据画图时,matplotlib的用法忘记了,知乎微信一搜,看几篇博客,似乎又会了。画完图,隔段时间,下次遇到,又忘了。所以这一次想把画图的底层逻辑理一理。首先就是fig、plt、ax的区别和联系了。学习过程中遇到的几篇有启发的文章:matplotlib画图详解matplotlib,先搞清plt/ax再画图matplotlib刨根问底在csdn上,搜matplotlib画图,可以看到这样的示例:看每个人的博客都觉得有道理,但他们之间
2022-04-12 23:37:54 851
原创 奥林巴斯FV31S激光扫描显微镜软件下载地址
官网下载要注册,还要序列号,发现了下面这个。http://10.71.109.23:8008/soft/FV31S-SW_V2.1.rar点击下载
2022-04-08 14:28:26 4443 12
原创 分清frontal plane(额状面)、coronal plane(冠状面)、transverse plane(横断面)、sagittal plane(矢状面)
首先额状面(frontal plane)和冠状面(coronal plane)是同一个截面的不同称呼。其次要分清对象是站立的人还是趴着的小动物。对于站立人来说,是这样的对于趴着的小动物,以小鼠为例两者其实是一样的,以眼睛朝向你横放着的大脑为标准,矢状面就是将大脑分成左右两部分的面。横断面就是将大脑分为前后两部分的面,冠状面或者说额状面就是将大脑分成上下两部分的面。当大脑竖起来以后,前后上下指代的区域变了,所以两幅图看起来有点矛盾,其实都是一样的标准划分。...
2022-04-07 15:43:51 14317
原创 从脑成像技术到麦克斯韦方程(CT成像原理与电磁波概念)
转行生医工,最近做实验要用复杂的光学仪器仪器拍照片。了解了一堆,先从脑成像技术看起。首先是CT扫描技术,全称computed tomography,电子计算机断层扫描,是一种利用X射线围绕人体某一部位一个接一个的断面扫描技术。直白一点,CT通过发射一束X射线穿过人体,根据接收回来的射线重建出人体结构。那什么是X射线呢?X射线是德国物理学家伦琴在1895年做实验时而发现的一种从未见过的射线,因为不清楚不了解这种射线,所以叫X射线,X经常表示未知。ok,上面解释了名字的由来,但就像认识一种植物,光知道
2022-03-25 22:41:07 879
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人