- 博客(79)
- 资源 (10)
- 收藏
- 关注
原创 sklearn-鸢尾花分类
1、获取数据# 1.获取数据iris = datasets.load_iris()x = iris.datay = iris.targetprint(x)print(y)鸢尾花数据共150个,每个样本有4个特征如下:其标签有3种类型,分别是0,1,2:2、数据预处理特征缩放:我们可以观察到X的值之间相差比较大,为了能够得到更好的分类效果,我们采用特征缩放对数据进行处理。这里用到的是MinMaxScaler。还有其他特征缩放方法参见:其他特征缩放方法# 2.数据预处理(特征缩放
2021-04-21 15:56:38
3198
原创 动态规划:回文串系列
1、最长回文子串寻找回文串的问题核心思想是:从中间开始向两边扩散来判断回文串for 0 <= i < len(s): 找到以 s[i] 为中心的回文串;(奇数) 找到以 s[i] 和 s[i+1] 为中心的回文串 (偶数) 更新答案class Solution { public String longestPalindrome(String s) { String result=""; for(int i=0;i<
2021-03-08 11:04:44
508
原创 动态规划:KMP字符串匹配
public class KMP{ private int[][] dp; private String pat; public KMP(String pat){ this.pat = pat; int M = pat.length(); dp = new int[M][256]; // dp[状态][遇到的字符] = 下个状态 dp[0][pat.charAt(0)] = 1; //.
2021-03-07 16:05:52
381
原创 动态规划:打家劫舍系列问题
1、数组类型你面前房子的索引就是状态,抢和不抢就是选择。public int rob(int[] nums) { int n = nums.length; int[] dp = new int[n+2]; //dp[i]表示从i到最后一个房子最多能盗取的金额 for(int i=n-1;i>=0;i--){ dp[i] = Math.max(dp[i+1], nums[i]+dp[i+2]); }
2021-03-05 11:42:48
286
1
原创 动态规划:四键键盘
对于「按 A 键」这种情况,就是状态 i - 1 的屏幕上新增了一个 A 而已,很容易得到结果:dp[i] = dp[i - 1] + 1; // 按 A 键,就比上次多一个 A 而已但是,如果要按 C-V,还要考虑之前是在哪里 C-A C-C 的。刚才说了,最优的操作序列一定是 C-A C-C 接着若干 C-V,所以我们用一个变量 j 作为若干 C-V的起点(应该看作C-C的位置)。那么 j - 1 、j 操作就应该是 C-A C-C 了:public int maxA(int N) {...
2021-03-03 14:33:07
344
原创 动态规划:博弈问题之石子游戏
方法一:数学法先手可以控制自己拿所有下标为奇数的石堆或者拿所有下标为偶数的石堆,只要先计算一下奇数石堆的石子总数和偶数石堆的石子总数哪种多就选哪种,所以先手总会赢return true;方法二:动态规划假设先手和后手都最聪明的情况下,返回先手和后手拿到的石头个数之差dp数组定义:dp[i][j][0]从下标i到j堆石头,先手能获得的最大数量;dp[i][j][1]表示后手public boolean stoneGame(int[] piles) { int n = pi.
2021-03-02 11:10:18
422
原创 动态规划:戳气球
1、题目说可以认为nums[-1] = nums[n] = 1,那么我们先直接把这两个边界加进去,形成一个新的数组points2、dp[i][j] = x表示,戳破气球i和气球j之间(开区间,不包括i和j)的所有气球,可以获得的最高分数为x。3、我们需要「反向思考」,想一想气球i和气球j之间最后一个被戳破的气球可能是哪一个?4、其实气球i和气球j之间的所有气球都可能是最后被戳破的那一个,不防假设为k。回顾动态规划的套路,这里其实已经找到了「状态」和「选择」:i和j就是两个「状态」,最后戳破的那个气..
2021-02-26 11:08:38
321
原创 动态规划:高楼扔鸡蛋
方法一:常规动态规划1、dp[i][j]数组定义:dp[i][j]表示鸡蛋数量为i,可选楼层数为j的状态下确定F的最少步数,问题所求为dp[K][N]2、base case:当楼层数为0,步数为0;当楼层数为1,步数为1;当鸡蛋数为0,步数为0;当鸡蛋数为1,步数为楼层数3、求状态(i,j)的情况下最少的步数,可选楼层数为j,则遍历1到j的所有楼层,开始扔鸡蛋4、当前在h楼扔鸡蛋,步数首先加1,然后分别求鸡蛋破或者没破的最大步数值,作为当前楼扔的值,再求所有楼层扔的最小值5、时间复杂度O(KN.
2021-02-24 15:32:03
466
原创 动态规划:正则表达式匹配
public boolean isMatch(String s, String p) { int m = s.length(); int n = p.length(); boolean[][] dp = new boolean[m + 1][n + 1]; dp[0][0] = true; for(int i = 0; i <= m; i++){ for(int j = 1; j <= n..
2021-02-23 14:07:24
197
原创 贪心算法:跳跃游戏
1、能否跳到最后2、用最少的跳跃次数i和end标记了可以选择的跳跃步数,farthest标记了所有可选择跳跃步数[i..end]中能够跳到的最远距离,jumps记录了跳跃次数。
2021-02-22 10:24:47
221
1
原创 贪心算法:区间调度
首先对所有区间按照结束end时间先后进行排序从排序后的第一个区间开始遍历,把第一个区间结束的时间end作为标准,若第二个区间与第一个区间相交,则删除;若不相交,则将第二个区间的结束时间更新为end作为新的标准;public int OverlapIntervals(int[][] intervals) { Arrays.sort(intervals,(a,b)->a[1]-b[1]); int count = 1; int end =..
2021-02-22 10:16:19
325
原创 动态规划:背包问题
0-1背包问题 和 完全背包问题 的区别在于:前者每个物品的个数是有限的;后者每个物品的个数是无限的。也就是为什么当选择将当前物品放进背包时,完全背包是dp[i][…]而不是dp[i-1][…]动态规划框架:0-1背包模板:完全背包模板:for(int i=1;i<=n;i++){ for(int j=1;j<=amount;j++){ if(j<coins[i-1]){ d
2021-02-22 09:57:29
148
原创 动态规划——最小编辑距离
解决两个字符串的动态规划问题,一般都是用两个指针i,j分别指向两个字符串的最后,然后一步步往前走,缩小问题的规模。base case 是i走完s1或j走完s2,可以直接返回另一个字符串剩下的长度。对于每对字符s1[i]和s2[j],可以有四种操作:这个「三选一」到底该怎么选择呢?很简单,全试一遍,哪个操作最后得到的编辑距离最小,就选谁。这里需要递归技巧,理解需要点技巧,先看下代码:递归版本def dp(i, j) -> int返回 s1[0..i] 和 s2[0..j] 的最小编...
2021-02-04 21:30:50
732
原创 动态规划:股票买卖系列问题
leetcode买卖股票的最佳时机系列共6题:买卖股票的最佳时机:只能交易一次买卖股票的最佳时机Ⅱ:可交易无限次买卖股票的最佳时机Ⅲ:最多交易2次买卖股票的最佳时机Ⅳ:最多交易k次含冷冻期:卖掉之后隔一天才能买含手续费:买入时交手续费状态转移图如下:dp[i][k][0] = max(dp[i-1][k][0], dp[i-1][k][1] + prices[i]) max( 选择 rest , 选择 sell )解释:
2021-01-29 14:50:19
232
原创 二分搜索
假设数组非递减1.常规二分搜索因为我们初始化 right = nums.length - 1所以决定了我们的「搜索区间」是 [left, right]所以决定了 while (left <= right)同时也决定了 left = mid+1 和 right = mid-1因为我们只需找到一个 target 的索引即可所以当 nums[mid] == target 时可以立即返回int binary_search(int[] nums, int target) { int
2021-01-05 11:21:05
190
原创 颅内血管分割随笔
这次分割的颅内血管数据是nii格式的三维数据,由于只有20套,所以打算切片再用简单的unet分割。途中遇到很多问题,简单记录一下~数据处理nii格式的文件读取专用库之一:import nibabel as nibimg = nib.load(filename).get_fdata()这样就能获取nii文件的三维数据内容了。但是获取到的三维数组内容是0-3000多的CT值,如果保存为png图片则要转换成0-255的uint8格式的数据则需要进行加窗。当选取窗位900,窗宽1200时比较适合。因此所
2020-08-10 15:44:36
1442
5
原创 R2Unet实现眼底图像血管分割
论文标题:Recurrent Residual Convolutional Neural Network based on U-Net (R2U-Net) for Medical Image SegmentationR2Unet结构Residual +Recurrent block:Recurrent实现在之前的项目中Unet实现眼底图像血管分割修改相应模型结构代码即可结果...
2020-05-29 10:42:04
4791
1
原创 论文阅读笔记:A Three-Stage Deep Learning Model for Accurate Retinal Vessel Segmentation
A Three-Stage Deep Learning Model for Accurate Retinal Vessel Segmentation摘要视网膜血管自动分割是眼相关疾病诊断的基础步骤,其中厚血管和薄血管都是症状检测的重要特征。所有现有的深度学习模型都试图使用统一的像素损失来同时分割这两种类型的血管,所有的血管像素都同等重要。由于粗血管与细血管比例高度不平衡(即大部分血管像素属于粗...
2019-12-02 10:40:41
1136
3
原创 论文阅读笔记:LADDERNET: MULTI-PATH NETWORKS BASED ON U-NET FOR MEDICAL IMAGE SEGMENTATION
LadderNet摘要U-Net已经在许多医学图像分割问题上提供了最先进的性能。对U-Net提出了许多修改,如attention U-Net、residual convolutional U-Net (R2-UNet)和带有剩余块或密集连接块的U-Net。然而,所有这些修改都具有带有跳过连接的编码器和解码器结构,并且信息流的路径数量有限。在本文中,我们提出一个梯子网,它可以被看作是一个多u形网...
2019-11-07 11:20:32
5108
原创 对眼底图像血管分割结果求Dice系数
首先将预测的图片转换为二值图如下:to_binary.pyimport cv2import osimport numpy as npif __name__ == '__main__': path = 'xxx/' imgdir = os.listdir(path) for v in imgdir: img = cv2.imread(path ...
2019-11-05 16:07:59
1770
1
原创 Dense-Unet实现眼底图像血管分割(VesselNet)
之前用Retina Unet项目实现了眼底图像血管分割,分割网络用的是Unet,现在看了DenseNet之后,将之前Unet网络中的Conv2d替换成下图的Dense Block之后,效果会有提升。在DRIVE数据集上的AUC值:MethodsAUC ROC on DRIVERetina-Unet0.9790VesselNet0.9841下面是Dense-...
2019-10-28 10:48:24
8958
34
原创 论文阅读笔记:CcNet: A cross-connected convolutional network for segmenting retinal vessels using 多尺度特征
摘要本文提出了一种用于视网膜血管树自动分割的交叉连接卷积神经网络(CcNet)。在CcNet中,卷积层提取特征并根据这些特征预测像素类。CcNet直接使用全绿色通道图像进行训练和测试。主路径和次路径的交叉连接融合了多层次的特征。DRIVE: Sn = 0.7625, Acc = 0.9528; STARE: Sn = 0.7709, Acc = 0.9633。在交叉训练阶段,CcNet的准确性波...
2019-10-18 16:46:38
1086
原创 简明代码实现Unet眼底图像血管分割
项目工程文件结构如下:参考了Retina_Unet项目,决定自己用代码来实现一遍,数据增强不是像Retina_Unet那样随机裁剪,而是将20个训练数据集按顺序裁剪,每张裁剪成48x48大小的144个patch,20张一共裁剪出2880个patch。Unet模型:模型输入的张量形状为(Npatch,1,48,48),输出为(Npatch,2304,2)。Npatch表示训练集的样本数,本例中...
2019-10-14 16:44:26
6732
25
原创 Unet实现眼底图像血管分割(四)
项目源代码:configuration.txt#数据路径 以及 训练集 测试集的名字[data paths]path_local = ./DRIVE_datasets_training_testing/train_imgs_original = DRIVE_dataset_imgs_train.hdf5train_groundTruth = DRIVE_dataset_ground...
2019-09-28 10:17:25
4743
13
原创 Unet实现眼底图像血管分割(三)
1、retinaNN_training.py模型Model的compile方法:模型Model的compile方法:model.compile(self, optimizer, loss, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics = None, target_tensors=No...
2019-09-27 09:45:22
3100
1
原创 Unet实现眼底图像血管分割(二)
使用了google colaboratory的免费GPU进行训练,调整了源代码的各个参数,下面是configuration.txt文件的解析:[data paths]只有在修改了prepare_datasets_DRIVE.py文件之后,才能更改这些路径。[experiment name]为实验选择一个名称,将创建一个具有相同名称的文件夹,其中包含所有的结果和经过训练的神经网络。[dat...
2019-09-12 17:30:09
5461
4
原创 Unet实现眼底图像血管分割(一)
参考链接上面参考链接的博主讲的很好了,我这里主要是记录一下自己复现的过程以及处理各种报错的问题。在Rrtina-Unet-master文件夹下新建一个test文件夹(源代码没有这个test文件夹会报错)将lib文件夹下的三个py文件里面的from xxx import xxx格式改成一致,就是说from lib.help_function xxx 的这个lib要么都有要么都没有。不然会报错...
2019-09-09 12:00:47
7063
10
原创 论文阅读笔记:Retinal vessel segmentation of color fundus images using multiscale convolutional neural.....
Retinal vessel segmentation of color fundus images using multiscale convolutional neural network with an improved cross-entropy loss function采用改进的交叉熵损失函数的多尺度卷积神经网络对彩色眼底图像进行视网膜血管分割关键词:视网膜血管分割、卷积神经网络、...
2019-09-05 17:48:00
3292
2
原创 论文阅读笔记:Retinal vessel segmentation based on Fully Convolutional Neural Networks
基于全卷积神经网络的视网膜血管分割关键词:全卷积神经网络、平稳小波变换、视网膜眼底图像、血管分割、深度学习摘要本文提出了一种新的方法,将平稳小波变换提供的多尺度分析与多尺度全卷积神经网络相结合,来处理视网膜血管结构的宽度和方向的变化。我们的方案使用旋转操作作为数据增强和预测的联合策略的基础,这使我们能够探索在训练中学习到的信息,从而细化分割。该方法在三个公开可用的数据库上进行了评估,在DRI...
2019-09-04 14:17:47
2469
2
原创 论文阅读笔记:A novel retinal vessel detection approach based on multiple deep convolution neural networks
一种新颖的基于多重深度卷积神经网络的视网膜血管检测方法关键词:视网膜血管分割、多重深卷积神经网络、图像分割摘要方法:在本文中,我们将检测任务作为一个分类问题,并使用基于深度卷积神经网络的多分类器框架来解决它。 在具有有限图像量的眼底图像上构建和训练多重深度卷积神经网络(MDCNN)。 MDCNN使用增量学习策略进行训练,以提高网络的性能。 最终的分类结果是从MDCNN结果的投票程序中获得的。...
2019-08-30 16:59:01
1058
1
原创 论文阅读笔记:Retinal blood vessel segmentation using fully convolutional network with transfer learning
Retinal blood vessel segmentation using fully convolutional network with transfer learning使用全卷积网络与迁移学习的视网膜血管分割关键词:视网膜血管分割、深度学习、全卷积网络、迁移学习、预训练模型摘要本文提出了一种基于预训练全卷积网络的迁移学习监督方法。该方法将典型的视网膜血管分割问题从全尺寸图像分割...
2019-08-29 16:51:55
2834
4
原创 论文阅读笔记:A retinal vessel detection approach using convolution neural network with 强化样本学习策略
A retinal vessel detection approach using convolution neural network with reinforcement sample learning strategy采用卷积神经网络和增强样本学习策略对视网膜血管进行检测摘要本文将检测任务定义为一个分类问题,并使用卷积神经网络(CNN)作为两类分类器进行求解。该模型由2个卷积层、2个池...
2019-08-27 17:01:40
872
原创 论文阅读笔记:3D deeply supervised network for automated segmentation of volumetric medical images
摘要深度卷积神经网络(CNN)在二维医学图像分割方面取得了显著的成功,但由于其复杂的解剖结构等诸多相互影响的挑战,使得CNN从三维医学图像中分割重要的器官或结构仍然是一项艰巨的任务。立体图像中的环境、三维网络的优化难点和训练样本的不足。本文提出了一种新颖、高效的三维全卷积网络,该网络具有三维深度监控机制,可以全面解决这些挑战,我们称之为三维DSN。提出的三维DSN能够进行体对体学习和推理,消除了...
2019-08-23 14:29:51
2957
4
原创 Unet实现细胞分割
目的:实现细胞分割数据集:isbi挑战赛的数据,只有30张512x512的image和label思路:读取数据,将数据转换成 30x512x512x1格式;由于数据太少,所以进行数据增强;(注意:对训练数据进行增强的时候image和label增强方式要一致)搭建模型。这里直接调用segmentation-models模块的Unet;(提前pip install segmentation...
2019-08-16 08:15:57
11114
34
原创 keras实现图像识别—cat
目的:识别图片中是否有猫训练集x_train(209,64,64,3),y_train(209,)测试集x_test(50,64,64,3),y_test(50,)设计的神经网络结构图如下:卷积层——池化层——卷积层——池化层——卷积层——池化层——平铺展开——全连接层——全连接层——全连接层获取数据# coding: utf-8# 2019/7/28 19:23import h...
2019-07-28 22:45:53
3303
原创 手写数字识别-Keras版本
一层from keras.datasets import mnistimport numpy as np #分配数据集(x_train,y_train),(x_test,y_test)=mnist.load_data()# x1_train=x_train[0]# y1_train=y_train[0]# print('图片集信息:',x_train)# print('图...
2019-07-28 18:17:18
250
原创 吴恩达Course1课后编程作业第四周-搭建多层神经网络
模型的搭建按照自己的想法设计的,源码共7个.py文件,如下图:按照创建先后顺序,分别是:data.py,layer.py,network.py,activation.py,loss.py,train.py,evaluate.py。data.py用于获取数据并对数据进行预处理,layer.py创建了一个Layer类,用来表示第L层,network.py抽象了一个网络类,将传入的若干层通过计算输入...
2019-07-21 21:08:29
634
原创 逻辑回归-二分类
逻辑回归-二分类数据集是自己生成的,训练集8000个,每个样本10个特征和1个标签,测试集2000个,每个样本10个特征和1个标签读取数据# coding: utf-8import numpy as np#获取训练数据def get_data(): d = np.load("dataset.npz") #x_train,y_train分别表示8000个训练集的数据和...
2019-07-16 11:29:19
590
原创 TensorFlow手写数字识别(三)
在上一篇输出预测错误图片的基础上,本文将继续学习,目的是预测自己用mspaint手写的数字首先在项目工作文件中创建文件夹:mypaint,然后自己制作手写数字预测图片下面的代码(get_myData.py)先对自己制作的图片进行预处理,最后得到的是和mnist数据集一样的格式import osimport cv2import numpy as npdef get_d...
2019-03-12 11:27:40
358
原创 TensorFlow手写数字识别(二)
根据上一篇文章实现的代码的基础上,这篇文章将继续学习TensorFlow手写数字识别,这篇文章的目的是:把手写数字预测错误的图片输出,文件名“<序号>-<原本数字>-predict<预测数字>”import tensorflow as tfimport input_dataimport numpy as npimport cv2#读取数据mnis...
2019-03-08 10:20:57
569
眼底血管分割with an improved cross-entropy loss function.pdf
2020-07-17
手写数字识别数据集
2019-03-07
算法设计与分析实验
2019-01-21
数字逻辑实验
2019-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人