精华内容
下载资源
问答
  • faster rcn固定输入图片尺寸(一)

    千次阅读 2019-03-07 19:27:32
    随着对于faster rcnn研究的深入,我们或许想要改变网络的整体结构,如将全连接层变为全卷积层来实验更好的分类方式,又或者会想要将多层的特征图进行融合或反卷积操作。但是如果只是修改网络配置文件train.prototxt...

    一.问题的产生


    随着对于faster rcnn研究的深入,我们或许想要改变网络的整体结构,如将全连接层变为全卷积层来实验更好的分类方式,又或者会想要将多层的特征图进行融合或反卷积操作。但是如果只是修改网络配置文件train.prototxt和test.prototxt,结果有可能会报错,大意就是某一层blob的实际大小与我们设计的大小不匹配所导致的。而我们从文章和代码浅层来看(文章给出的caffe-python源码),它是使用两个参数scale和maxsize来固定了输入图片大小的。

            # data blob: holds a batch of N images, each with 3 channels
            idx = 0
            top[idx].reshape(cfg.TRAIN.IMS_PER_BATCH, 3,
                max(cfg.TRAIN.SCALES), cfg.TRAIN.MAX_SIZE)
            self._name_to_top_map['data'] = idx
            idx += 1
    

    上面的代码来自roi_data_layer的layer.py。主要作用就是在网络起始阶段固定好输入的data的数据维度。reshape()函数中第一个参数表示的这个blob中数据的数量,在使用RPN时,必须要求IMS_PER_BATCH为1,即必须在一个bacth中只能使用一张图片中样本(后面解释为什么)。3是RBG图像的通道数目,后面两个参数似乎是图片的宽和长。可以看到这里将宽设定为max(cfg.TRAIN.SCALES)即设定图像金字塔的最大尺度(600),将长设定为cfg.TRAIN.MAX_SIZE(1000)。但是实际上,我们可以接下来看看获取每一个batch的数据的实际的情况

    def prep_im_for_blob(im, pixel_means, target_size, max_size):
        """Mean subtract and scale an image for use in a blob."""
        im = im.astype(np.float32, copy=False)
        im -= pixel_means
        im_shape = im.shape
        im_size_min = np.min(im_shape[0:2])#短边
        im_size_max = np.max(im_shape[0:2])#长边
        im_scale = float(target_size) / float(im_size_min)# scale/短边
        # Prevent the biggest axis from being more than MAX_SIZE
        if np.round(im_scale * im_size_max) > max_size:#计算得到的目标长不应该超过设定的max_size(1000)
            im_scale = float(max_size) / float(im_size_max)#万一出现就以max_size为目标计算im_scale
        im = cv2.resize(im, None, None, fx=im_scale, fy=im_scale,
                        interpolation=cv2.INTER_LINEAR)
    
        return im, im_scale
    
    

    在这里,我们看到在将图片进行resize时,对于fx,fy使用了同一个im_scale进行放缩。这样可以保持图片的纵横比不变。这里的im_scale是来自于短边与scale的比值,但一但通过就这种方法计算出来的长边超过了上设置的max_size之后我们就要以max_size为目标计算im_scale.
    所以有这段代码来看,我之前的理解是错的, max(cfg.TRAIN.SCALES), cfg.TRAIN.MAX_SIZE 这两个参数并不是分别表示长和宽,他的参数意义就是其字面意义cfg.TRAIN.SCALES表示理想的输入尺度, cfg.TRAIN.MAX_SIZE则是设定输入图片的阈值,边长不可以超过的最大长度。这样我们可以知道,对于整个数据集,我们的图片的纵横比和大小并不是完全一致的,那么有些bolb之间存在大小不匹配就不奇怪了。

    展开全文
  • 含有全连接层的网络输入数据的大小应该是固定的,这是因为全连接层和前面一层的...但是,但是,但是,全连接的实现可以通过卷积的方式进行,这就可以不用固定输入数据的大小了。这里有两种情况: 前层为卷积层或...

    固定大小是说送入网络训练的每一个数据大小需要一样, 除了何凯明团队提出的 Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 利用空间金字塔池化将任意大小的图像输出成固定的输出,然后输出到后面的全连接层解决了固定大小的问题。但是固定大小不代表网络输入必须是这个大小,比如说现在输入图像大小为227x227,那么你所有图像都必须为227x227, 不能出现不一样的, 但是你也可以将图像都改为224x224(没有预训练模型的情况下)。
      解释:含有全连接层的网络输入数据的大小应该是固定的,这是因为全连接层和前面一层的连接的参数数量需要事先确定,不像卷积核的参数个数就是卷积核大小,前层的图像大小不管怎么变化,卷积核的参数数量也不会改变,但全连接的参数是随前层大小的变化而变的,如果输入图片大小不一样,那么全连接层之前的feature map也不一样,那全连接层的参数数量就不能确定, 所以必须实现固定输入图像的大小。
      另外全连接的实现可以通过卷积的方式进行, 这里有两种情况:

    1. 前层为卷积层或池化层(就是全连接层的输入是feature_map,而不是单个值):
      比如前层输出为512x5x5的feature map,全连接层有500个神经元,那这可以看做是用5x5的卷积核对前层的这些feature map进行卷积,最后输出500x1x1的feature map;

    2. 前层是全连接层
      若前层有500个神经元,当前层有100个,那可以看做前层有500x1x1个feature map,然后用1x1的卷积核对这些feature map进行卷积,则得到100x1x1个feature map。

    展开全文
  • Java中多组输入方式

    千次阅读 2015-08-10 22:24:15
    使用java语言进行多组输入应该注意的问题
     
    
    这里我们以常见的a+b为例:
    
     
    A + B
    描述

    给予两个整数 a 和 b ,计算它们的和 a + b

    输入

    输入包含多组测试数据,每一行包含两个整数 a 和 b

    输出

    在一行中输出 a + b 的值

    样例输入
    1 2
    
    3 4
    
    5 6
    样例输出
    3
    
    7
    
    11
    java代码如下

    import java.io.*;import java.util.*;public class Main{ public static void main(String args[]) { Scanner cin = new Scanner(System.in); int a, b; while(cin.hasNextInt())//重点在这里,此处命名为语句@1. { a = cin.nextInt(); b = cin.nextInt(); System.out.println(a + b); } }}

    如果我们把@1改写为
    while(true)
    其实在编译工具上还是可以实现的,但是在一般的oj平台上就不能通过。具体原因我也不是很清楚

    还有个重点要提醒大家,在提交java代码时,所提交的Java程序必须是单个文件的,也就是所有的类必须写在一个文件里。
    但是必须有一个类的里面必须包含一个名字为'main'的静态方法(函数),这个方法是程序的入口。若您将主类申明为public公有类,则这个类名必须是'Main';
    就像上面的示例,否则提交就会编译错误。。。谨记谨记。。。






    展开全文
  • 在cmd中,​输入“jupyter notebook”打开notebook,此时cmd的当前路径即为notebook的工作路径。例如:新建文件:进入上面的目录,可以找到自己新建的文件:下面,主要讲一下如何设置config文件的方法...

    我电脑用的是windows系统,安装了anaconda3,它自带了jupyter notebook。现在主要讲一下如何设置jupyter notebook工作目录的方法。

    在cmd中,​输入“jupyter notebook”打开notebook,此时cmd的当前路径即为notebook的工作路径。例如:


    新建文件:


    进入上面的目录,可以找到自己新建的文件:



    如果你切换到其他目录执行jupyter notebook命令打开notebook,则新目录为jupyter notebook的工作目录。

    如此可见,这样很不方便,notebook工作目录就不固定。


    下面,主要讲一下如何设置config文件的方法来设置固定的工作路径。


     1、win键+R键,输入cmd进入命令行输入​命令:

    jupyter notebook --generate-config

    2.此时在该文件夹中便生成一个notebook的config文件​,文件名是“jupyter_notebook_config.py”。找到配置文件的位置,一般在 C:\Users\【用户名】\.jupyter\



    3.使用notepad++等工具打开jupyter_notebook_config.py文件进行编辑:

    找到:  #c.NotebookApp.notebook_dir = ''

    修改为: c.NotebookApp.notebook_dir = ‘G://jupyter_notebook//’

    注意:

    1.将最前面的 # 去掉

    2.G://jupyter_notebook//为我指定的工作目录,可根据自己的实际情况进行修改

    3.注意是\\不是/,写成 G:\jupyter_notebook 存在问题(啥原因没去追究)

    修改前:

    修改后:



    4 测试

    重新打开cmd,输入 jupyter notebook 打开notebook


    新建文件:


    在自己指定的目录下找到文件:



    完成


    展开全文
  • UITextView的详细讲解,限制字符长度输入
  • Project:固定成本的使用方式

    千次阅读 2019-09-18 06:14:23
    在Project 2016中,成本默认被划分为固定成本和资源成本,固定成本可以是某个特定任务的一次性杂项成本,可以将固定成本添加到任何任务中包括代表整个项目的项目摘要任务,下图为项目成本体系结构: 从图中可以整理...
  • Linux_Centos6下_三种配置固定ip的方式

    万次阅读 多人点赞 2016-08-17 20:59:09
    扯远了,集群配置的第一步就是配置网络,一般都需要配置固定ip,这个很容易理解,如果用默认的dhcp方式的话: dhcp池会分配随机的ip,ip会经常发生变动,而kafka,zookeeper,redis,这些不会跟着ip的变动动态获取到...
  • C语言输入和输出字符串的三种方式

    千次阅读 2019-03-01 21:46:32
    1、字符串的保存 C语言没有string类型,只能用字符数组保存字符串,当字符数组为一维时,可以当做是“字符串”,二维时,为“字符串数组”,即多个字符...在我们使用的时候第一个参数给定要输入的字符串,第二个参...
  • //java检测是否为电话号码(手机、固定电话验证) String legalPhone = ""; String regExp ="^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}|[0]{1}[0-9]{2,3}-[0-9]{7,8}$"; Pattern p = Pattern.compile(regExp)...
  • 在本教程中,您将学习如何将Keras用于多输入和混合数据。 您将了解如何定义一个Keras体系结构,该体系结构能够接受多种输入,包括数字、分类和图像数据。然后,我们将在此混合数据上训练单个端到端网络。 今天是我们...
  • QLineEdit 文本输入

    千次阅读 2019-04-23 15:41:23
    固定方式对齐文本 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右对齐 Qt.AlignCenter:水平方向居中对齐 Qt.AlignJustify:水平方向调整间距两端对齐 Qt.AlignTop:垂直方向靠上对齐 Qt....
  • 以前在11.04上还可以桌面右击选择创建启动器的方式来创建桌面快捷方式, ...输入命令sudo gedit /usr/share/applications/Eclipse.desktop 把下面的内容填入文件,做对应的修改,点击保存即可 [De
  • step1:打开windows资源管理器(我的电脑),再地址栏输入以下内容 C:\ProgramData\Microsoft\Windows\Start Menu 回车,进入对应的目录,当前系统是中文语言,所有Start Menu显示成中文的“【开始】菜单”了 ...
  • 准确的说让Edittext只能输入数字有方法两种,都是通过xml属性设置 方法一: android:id="@+id/u_account" android:layout_width="0dp" android:layout_height="match_parent" andro
  • Java输入/输出

    万次阅读 2018-05-06 14:29:58
    文本(Text)输入/输出 输出用PrintWriter类 try-with-resources来自动关闭资源 用Scanner来读取文本 流式处理 二进制(Binary)输入/输出 二进制输入/输出到文件 FilterInputStream/FilterOutputStream ...
  • FileInputFormat是所有使用文件为数据源的InputFormat实现的基类,它提供了两个功能:一个定义哪些文件包含在一个作业的输入中;一个为输入文件生成分片的实现,把分片割成记录的作业由其子类来完成。 下图为...
  • 深入理解C++输入输出流

    万次阅读 多人点赞 2016-01-19 23:36:06
    因为C++兼容C,所以C中的输入输出函数依然可以在C++中使用,但是很显然如果直接把C的那套输入输出搬到C++中肯定无法满足C++的需求,第一点也是最重要的一点那就是C中的输入输出有类型要求,只支持基本类型,很显然这...
  • 准确的说让Edittext只能输入数字有方法两种,都是通过xml属性设置 方法一: <EditText android:id="@+id/u_account" android:layout_width="0dp" android:layout_height="match_parent" ...
  • Android 自定义键盘输入内容监听

    万次阅读 2017-05-18 09:28:50
    为何要监听输入内容? 一般正常的监听键盘输入内容,都是用Editext控件来实现用户的输入内容显示。但是特殊输入类型,如现在的方格密码输入,必须把内容准确放入方格内,这时候就必须主动操作输入显示这块,而不是...
  • C++输入获取未知长度的行输入数组 与 输出控制
  • 字节 输入输出流 byte

    千次阅读 2017-03-03 22:14:27
    输入和输出是相对于程序的: 流的分类: 第一: 输入流: 数据从外部流入写的程序 输出流: 数据从程序流到外面第二: 从流结构上:其实底层都是以字节流来实现的。 **字节流: 字符流**:在字节流的基础上做...
  • 5.1 创建密码输入界面 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 5.1.1 示例代码 创建密码输入界面时,这里描述了安全性方面需要考虑的一些...
  • Java输入/输出流

    千次阅读 2021-01-01 19:21:49
    Java输入/输出流 一、流的概念 输入流只能读不能写,输出流只能写不能读。按照流中数据的处理单位不同,可将流分为字节流和字符流。在字节流中,数据的组织和操作的基本单位是字节;在字符流中,数据的组织和操作的...
  • c++控制台输入

    万次阅读 2013-07-05 21:57:17
    当在控制台输入数据时,所有的数据都是输入到缓冲区的,当从其中提取数据时,也是从缓冲区提取的!其有一个指向缓冲区的指针,就是通过此指针对数据提取的。 例如cin>>a;其实就是像缓冲区输入一系列字符,然后cin>>a...
  • C++输入输出的格式控制1

    千次阅读 2017-04-23 13:17:22
    》默认的输入输出格式  在没有特地进行格式控制的情况下,输入输出采用默认格式。  >默认的输入格式  C++流所识别的输入数据的类型及其默认的输入格式:  # short 、int 、long(signed 、unsigned):与...
  • c++连续输入未知个数的数字

    千次阅读 2018-08-04 13:49:19
    vector&lt;int&gt; v; int num; while (cin &...方式一:以空格或者回车结束每次输入,以固定输入数字0结束输入(也可以更改为其他字符) string test; getline(cin, test); int inpu...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 403,989
精华内容 161,595
关键字:

如何固定输入方式