- 博客(52)
- 收藏
- 关注
原创 基于pytorch实现语义切割的FCN、Segment(1)
1、数据集使用Pascal VOCO2012 Pacal数据集就不在过多简介,这是一个用于物体检测、语义切割的共用数据集。数据集预处理(1)读取数据root = '/media/josen/data/VOCdevkit/VOC2012'image_file = 'JPEGImages'segment_file = 'SegmentationClass'trainfil...
2019-10-24 22:49:21 957 1
原创 pytorch 使用Imagenet预训练模型训练
1、loading models#加载以resnet50为例子import torchvision as pmodel = p.models.resnet50(pretrained=True) 此时加载数据模型以后,我们要是思考如何利用它,但是在此之前你必须了解你加载的模型的结构。2、处理分类数据 如果是用来处理分类数据: 你只需要替换最后一个全连接分类进行输...
2019-10-13 00:09:54 6964 1
原创 pytorch 利用Dataset读取数据报错
1、报错点如下:Traceback (most recent call last): File "read_data.py", line 100, in <module> for i , (image,seg) in enumerate(train_loader): File "/usr/local/lib/python3.6/dist-packages/torc...
2019-10-06 00:35:48 7632
原创 pytorch实现InceptionV3模型,Cifar10数据集测试
1、GoogleNet的InceptionV3结构 Google的InceptionV3版本以前的模型,有着以下改进部分: 前期模型构造,自己在V1、V2版本中并没有加入BN,加快模型收敛,这是考虑模型更深更广,训练难度大,而且也容易出现差错,自己也考虑在V2、V1模型加入BN,具体的测试对比和代码会将其放在github上。# 自己封装的BN+ReLU模型#cl...
2019-09-28 01:16:23 4510 3
原创 pytorch 实现InceptionV1、InceptionV2,同时在Cifar10测试
1、GoogleNet 到现在,总共有着5个版本----inceptionV1-V4、Inception-Reset,为我们提供了一个新颖的思路探索---多路特征获取网络(Conv、Maxpool、avgpool),同时提供卷积 在1*1 和 3*3stack结构,不仅放大了视野,而且也相对VGG 3*3 stack减小了参数的运算。我们可以先对比V1与V2 multi-block的...
2019-09-26 16:45:33 1871 1
原创 pytorch 实现mobileNet V1 、V2,于cifar10数据集测试
1、mobileV1和mobileV2基础结构对比2、实验代码结构class MobleNetV1(nn.Module): def __init__(self,num_classes,grayscale=False): dim = None if grayscale == True: dim ...
2019-09-25 11:34:33 5314 9
原创 pytorch实现resnet18(34,101,152)、vgg16对cifar10进行分类
1、pytorch简介 pytorch是由facebook所开源的深度学习框架,其框架重于强调于动态流图建立,其不同于google的tensorflow其静态Graph概念,其各有千秋。tensorflow更多贡献于distribution sysytem,企业分布式训练体系架构非常适合。pytorch是后来居上,其构造的框架API也在不断改善,但是pytorch对于类的构造、继承等...
2019-09-24 13:58:13 3550
原创 Data Augment ------TensorFlow 训练图片处理
Deep Learning 是基于一个数据的分析模型或是数据的分析方法。数据在足够大时,其分析或事更佳,数据更佳能分析出结果。如果收集的数据过于小或是数据收集小,这样训练出来的结果会让其出乎意料。我在此是针对于CNN模型,其实该模型不是说一定需要大量数据才可以得到结果,其涉及到您训练的模型-fine-tune,采集的数据是否够优质或是数据之间的区分度等。方法1:其实我们如果涉及到一个大类中的数据进...
2018-07-20 18:05:01 1033
原创 tensorflow 训练fruit3602
数据预处理完整后,开始训练模型:这里偷了一个懒用了slim模型:def vgg_model(inputs, num_classes=classes, is_training=True, dropout_keep_prob=0.5, spatial_squeeze=True, scop...
2018-07-17 20:52:45 405 1
原创 tensorflow 训练fruit3601
fruit360数据集是来自kaggle数据。下载下来以后有71类,其classname为:Apple Red DeliciousHuckleberryMelon Piel de SapoPearCherry 1StrawberryAvocadoPomegranateDatesCarambulaGranadillaTamarilloKiwiLemonGuavaA...
2018-07-17 20:26:20 1316 1
原创 分类训练-数据的预处理
1、VGG、resnet模型的数据预处理 利用[R,G,B]训练进行的,之前上一篇文章写的数据读取,如果是用opencv 读取数据是bgr格式,这里我去看过一下,该设立初衷是为了好直接给视频拍摄的图片等直接进行对接。同时我们的jpeg图片存储是也是bgr格式或是调用的是tf.image.api存储-cv2.imwrite()。这里给大家提供两种方法去将bgr转换为rgb :b,g,r = ...
2018-07-02 17:58:39 2550
原创 基于tensorflow的图片数据处理
这里给出一些处理图片的方法,主要是应用于tensorflow的多线程队列读取图片文件,划分train数据集和val数据集,这里借助于sklearn函数随机划分。下面主要是处理一个文件夹下有多个文件夹,同时提取多个文件夹的图片,文件的名作为lablelName这里划分的数据集是按照文件下的文件夹下内容划分的,这样划分不平衡分布数据更加合理。def logs_set(string): f = ...
2018-06-21 11:07:23 488
原创 编程实现克拉默法则求值(1)
1、克拉默法则 含有n个未知数X1,X2,....,Xn的n个线形方程组: a11x1+a12x2+...+a1nxn=b1, .....................1 a21x1+a22x2+...+a2nxn=b2, ...................
2018-01-27 17:06:58 4284
原创 实现对于n阶行列式的计算
实现对于n阶行列式的计算,对于行列式的计算是对于我们的实际有着很大的帮助的。例如我们在现实生活中遇到一个问题,它抽象成一个数学模型或事一个n元1次方程组,现在求解问题。这类问题有很多。这就要借助我们的线形代数的知识来求解。先实现行列式的求解问题: 行列式的公式为:Sum=∑ (-1)^t*a1p1*a2p2*...*anpn (这里的t表示排列p1 p2...pn
2018-01-19 12:25:11 8172
原创 概率算法1-应用定积分计算
概率算法 概率算法的特性:使用概率算法去处理同一个问题,计算两次会得到不同的计算结果。概率算法是对于我们在现实社会中是非常有效的,大家都是学理工科的,知道这里世界上是没有绝对的事情,也没有绝对发生的事情。我们认为一些事情会发生了,它也不是绝对发生,也可以认为它发生是存在着一定的可能性,只是认为可能性发生的大小而决定的。我认为我们要把计算机当成自己的tool to sovle soci
2018-01-14 22:07:14 3430
原创 面向对象-工厂设计模式
工厂设计模式 其实大家都知道一个工厂:它可以生产出同一个类型的产品的不同型号,我现在是一个需要工厂来提供帮助的产品,我只需要告诉工厂,我需要哪一个产品,而不关心那个产品具体是怎样实现的。我关心的是给我提供一个需要的工厂产品。 我以C#的一个简单例子来讲解工厂模式(设计模式的思路是解决重用性问题和抽象问题): public class _base {
2018-01-09 21:43:28 353
原创 计算机的“闲聊”1
大家都知道,计算机是一种有限资源的工具,也就是其能给我们提供的是有限的资源,有限的计算能力,有限的存储。它其正因为有限的能力,但是通常我们去给予它太高的期望,把它看成一个能力无限的设备。以至于自己该开始学习计算机时候,认为它是有着多么神奇的计算能力,有着多么神奇的魅力: 1、刚开始写计算机程序时候,我可以用它来算一下大的乘法或是加法: 例如。 int
2017-12-30 21:45:25 204
原创 php类的重载函数简单的实现
<?php/* * 这样写出来的基类下次就可以直接修改很方便了 * */class basic_inter{ private $count; private $value; private $result; function __construct() { $this->count=0; } function se
2017-12-10 00:10:54 479
原创 原始套接字实现--arp欺骗
1、利用原始套接字实现arp欺骗: 首先我们要清楚arp的原理: 这样我们就可以很清楚我们要做什么了: 2、既然这样我们就可以十分明白自己该怎样做了。 来看一下linux下的一些对于arp头部的构造的源码和各个字段的常见参数解析:去文件/usr/include/net/if_arp.h /ustr/include/netine
2017-11-23 11:46:52 3830
原创 原始套接字编程----简单的发送SYNtcp数据
1、首先要明白的是:你发送的TCP数据到底是怎样构造的吧?2、TCP数据报的构成方式: 这是TCP头部-------如果无TCP的选项其头部大小为20个字节;3、下面要明白IP头部的大小: 4、构造头部: ip 头部:struct ip * ip=calloc(1, sizeof(struct ip)); ip->ip_dst.s_addr=i
2017-11-19 17:16:51 3255 2
原创 原始套接字编程-DOS攻击
没事写一个dos攻击的简单版本,我不是为了去显示攻击或是什么,只是为了学习网络编程。构造IP头部发送80的请求,也就是目的地址random产生:我是为了原始套接字测试的:下面的是mac os UNIX下的,在Linux的struct tcphdr不一样的哈:实现的代码为:#include #include #include #include #include #include
2017-10-26 16:58:43 589
转载 C语言mysql.h简单解析
测试环境mac os /linux #include 一般是not find 这里的mysql.h 在/usr/local/mysql/include 中的:MYSQL_FILED数据对象:typedef struct st_mysql_field { char *name; /* Name of column
2017-10-21 12:15:02 5108
原创 网络编程- ping程序简单实现
ping程序:ip 发送一个icmp回射请求,该节点以一个icmp回射应答。ipv4,ipv6点格式: 0 7 8 15 16 31 typecode校验和表示符表示符序列号datadatadata 以 ipv 4-- struc
2017-10-19 22:59:50 3133
原创 C多线程编程-互斥量
互斥量-mutual exclusion Posix API提供了互斥量的安全函数,#includeint phread_mutex_init(phread_mutex_t * tid,void * atrr);int pthread_mutex_lock(pthread_mutex_t *tid);int pthread_mutex_unlock(pthread_mutex_t
2017-10-16 22:12:56 792
原创 OS-银行家算法
银行家算法1、need是申请资源部分;2、max是需要资源;3、allocation 是分配资源;4、rest结构提是指剩余部分的资源;5、分配算法就是need小于rest就表示该资源可以成功;6、这里还要将没有加入部分加入一个counter里面,保存--在其他释放资源后有可能会执行,有可能会等待,flag标记2时候一定不可能在存在的;7、flag数组里面0--表示为不
2017-10-09 23:14:30 557
原创 unix--网络编程IO复用
I/o复用问题: #include #include #include #include #include #include #include #include #include #include #include #include #include #define PORT 34561#define MAX 100const char * end="quit\
2017-09-28 22:50:23 246
原创 unix网络编程学习--守护进程
/*实现将字符加密,颠倒返回*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const char
2017-09-28 00:18:14 231
原创 unix 网络编程---select回射TCP,UDP
Client:这里是MAC os运行测试的,Linux FD_SET函数是可以通用的#include #include #include #include #include #include #include #include #include #include #include #include
2017-09-26 00:18:55 405
原创 散列---分离连接法
分离连接法,将散列到同一个值都进行保留到表中。其散列函数hash(x)=x mod tableSize;其实之前自己写过这个散列,现在是在原来基础之上拓展的。数据构成: typedef struct node{ Data da[MAX]; unsigned int key;//索引 unsigned int value;//该值出现的次数
2017-09-23 22:38:23 360
原创 二叉平衡树-AVL
二叉平衡树其左右 的子树的深度相差的大小是小于或等于1的。其达到的是一种类似动态平衡的状态,中序遍历是一个从小到大的排列序列。其与二叉查找树似乎有些相似,但是其平均深度为logN。实现的具体步骤为:数据结构:#include #include typedef int Element;typedef struct node{ Element da
2017-09-12 07:52:15 188
原创 二叉查找树简单实现
二叉查找树其实在实际中起效率非常高,特别在于处理其中的数据。实际工作中我认为会有用处的:1、中序排列是一个按照从到大的序列来实现的;2、删除一个元素,会在右子树的最小的一个元素来进行补上其位置,让其中的数据结构不变;3、删除元素后数据结构会有变化,数据最坏遍历查询是:O(N)平均是O(logN)实现的代码:#include #include typedef
2017-09-11 22:53:01 191
原创 数据结构常见的排序
1、冒泡排序-- 两层循环的run,有一个优化指出就是当后面的数打于前面一个是可以结束一个循环这样可以节省时间;2、插入排序,最好情况为O(NlogN):void insertSort(int *a,const int &length){ int n=length; int j; for(int i=1;i
2017-09-02 11:02:50 370
原创 回溯法-bfs--迷宫问题的最短路径
迷宫问题怎样才可以得到最短路径:这里有测试案例:0-通路,-1为墙,输入为:测试经过计算机跑过--为:这样其最短路径为:核心算法为:findpath(int ** map,constint &start_x,constint &start_y){ int m=start_x,n=start_y; Queue Q;
2017-08-27 11:48:26 7282
原创 回溯算法解决迷宫问题
迷宫问题,首先解决的是两个问题:1、什么时候可以继续走也就是什么时候可以走?--a、不出界限、没有到限制条件,它可以继续运行。---b、当没有障碍物时候就继续运行:这里也会有问题,我走到这里时候那么我又该怎样来走了啊?这是不是你得给它怎样去走啊,对于数组选择路径就是把它的坐标给它加上或减去一个数不是就可以在四周走了。2、它在什么时候走,它停下来是什么条件,遇到障碍物又该怎样走啊?a、出界、运障碍物
2017-08-24 23:12:01 3757
原创 动态规划--01背包问题
01背包问题,实际指的是:放没有?而非重复地去添加一个。现实应用中就有此应用,我们放物品到背包中去时候,我们往往考虑的是包尽量装满,背东西最多:/* 01 背包问题实际就是将它装入一个固定的容器中,但是我们要把有限的容器中装入其价值最大的物品, 02 物品只有第一个装完,有了空间才可以装第二个,正如我们大家装入物品一样的; 03 这里是用动态规划,非用贪心算法
2017-08-23 19:09:56 434
原创 链表--稀疏矩阵
稀疏矩阵,用链表实现这样可以大大节省空间,其运用也很简单:templateclass T>struct Node{ T value; T colun; Node *next;};template class T>void IntialRetange(int n,Node **p){ p=(N
2017-08-22 17:56:14 1099
原创 贪心算法--Dijkstra算法(单源最短路径算法)
其实网上有很多写Dijkstra算法的前辈们,我只是分享一下我自己写的一点心得,还有希望前辈来可以知道自己的错误。其实自己在写的过程中,发现你写一个算法,关键看您对于它了解有多少?你的理解是透彻清楚的吗?还有自己得认真去回味它一步一步是如何得到的,又是怎样的过程,问题就是这样解决的。我自己写的Dijkstra算发的复杂度高于网上前辈写的,但我要是学会自我思考、自我认知、自我寻找之精神。我乐于思
2017-08-20 18:03:29 14067
原创 贪心算法-(哈夫曼编码)HuffmanCode
哈夫曼编码应用在于对于文件的压缩,压缩效率是非常的高。实现哈夫曼编码,得首先知道哈夫曼树的形成过程是怎样进行的:1、对于所要编码的数据,首先得将它们中找到其中的最小的两个位置合并成一个小树,节点的权值是两者相加形成的;2、步骤1中得到的权值在进入原排列中,在此获取新组合中的最小的两个数据,在执行步骤1;3、对于步骤1、2要重复执行它,执行的次数其实可以思考一下,其实有n个数,执行的次数
2017-08-19 11:58:44 5074
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人