转自http://www.ixpub.net/thread-792786-1-1.html
要不要池化是个艰难的选择.
如果结合现实世界的情况, 池化肯定是必须的.
比方说如果你想要出远门, 那么在现实世界你有几个选择:
1, 坐公交; 2, 买台车; 3, 租台车; 4, 搭便车...
当然还有更多, 但是很明显的是, 就算你最后选择造一台车, 你最终大概也不会每次出门前都花几年时间造一台车. 除非你的速度快到可以在1毫秒的时间内造出一辆车, 这样的话不管是哪一种方式都明显不够这一种快. 但是问题是, 如果你真的这么干, 并且受你的影响, 其他人通过向你学习都学会了极速造车, 这样子表面上看起来问题好象已经是解决了. 但如果大家出门次数都比较多的话, 一个新的问题又将浮了出来:
你家已经没有地方放这么多的车. 这时候你可能会说: 我当然不会傻到这一步. 我有一台就够了, 干嘛造那么多?
写到这, 我觉得问题的本质已经暴露出来了, 我们在现实世界中日复一日地执行着将对象重用的法则, 但是在程序代码中却不停地重复制造功能完全相同的对象. 要知道在现实世界中, 对象的使用价值会随着时间的推移不断折旧, 当旧到不能再使用的时候, 我们就会需要一个新的对象. 这也是制造行业存在的根本. 但是反观我们程序员们整以生存的代码世界, 它们从来不存在折旧的问题, 我们的代码从来就不会越跑越老. 然后我们却从来不考虑重新使用对象, 每次我们想要一台汽车的时候, 我们就重新创造一台.
这当然不是一个正确的软件生态行为. 我这样说可能有点太华丽. 我只是不想有人以为我在讨论性能问题. 当然, 对象的重用肯定与性能相关, 但是两者不是同一个层次的问题. 性能是对运行状态的度量, 但是对象重用确确实实是从一个生态的角度来考虑问题的.
SUN公司提倡不需要在代码中使用对象池技术. 他们认为虚拟机完全可以解决对象池可以解决(在虚拟机内部)的问题. 我认为果然这样的话, 虚拟机就不再需要垃圾回收了. 垃圾回收本身就是对对象状态之存在的反证. 如果对象的状态从头到尾是一致的, 当然就不会需要任何对象回收. 正因为对象有具有使用价值和不再具有使用价值的区别, 我们才需要把仍然具有使用价值的对象保留起来, 把不再具有使用价值的对象抛弃. 这一点联系到现实生活就是我家里有一个垃圾桶. 其实就平常来说, 我往垃圾桶里面扔的东西的种类大多是一些包装纸或者包装纸盒, 当然还有一些食物残渣, 如果我在家里吃饭的话. 但是很少会有电脑, 或者手机之类的东西. 可能会有人说那是因为这些东西很贵, 所以你不会用一次就扔掉. 那么一支铅笔呢? 或者一个打火机呢(这里请不要考虑它的折旧)?
东西要不要扔掉, 决定于它对于我们是不是继续具有使用价值. 注意这里有一个相对关系. 一张废纸, 当然仍然具有使用价值, 但我却不再需要, 所以我只能抛弃它. 可能又会有人说 (其实是我自己的想法) 一张废纸也可以重新使用啊, 比如拿来生火(HOHO, 我有时候确实需要, 当燃气炉点不着的时候, 一张纸的用处实在是太大了). 这样一说其实引出更深的一层意思, 我们首先应该制造能够重新使用的东西, 然后当我们决定抛弃一件东西之前, 首先应该想想这件东西是不是还有别的用途呢? 比方一张已经写满的草稿纸确实可以用来生火. 哪怕这种纸质很不幸不适合生火(有些纸就是点不着, 不过我分不清到底是哪一种), 你一恼怒就又想扔掉它了! 且慢, 如果你家有足够的地方, 并且这张纸至少还算干净的话, 象我这种人 (我很少扔东西, 我家里面有十年以前的买的鞋子. 这样做的目的是为了当碰上连绵阴雨的天气我不至于要一天买一双鞋. 我不喜欢穿皮鞋或雨鞋!) 就会劝你还是留下来并且保管好. 当然, 这里有个前提, 就是你在家里并不能独自制造出一张纸. 如果你能呢? 也许恰好你就住在造纸厂里面, 这样你当然应该扔掉它. 我主张对象重用但从来不反对扔掉没有用的东西. 比方说一个破烟头, 我很少会留下这样的东西 (我还是会经常留下一两个在烟灰缸里面, 虽然我直到现在还是没有发现它们有什么用途. 但是这样的话我家里就会长期拥有破烟头. 除非有一天我发现破烟头原来会引起女孩子的反感, 我应该是不会改变这个习惯的. )
分享到:
相关推荐
1.高效简单池化的HttpClient工具类,提供单元测试用列。 2.支持基于SpringBoot 2.1.x的自动装载模块,引用依赖即可使用。 3.公司几十个项目都使用该工具类访问第三方的Http/Https+json协议接口。 4.经过上市公司多个...
池化下采样_分类 - 最终.ipynb
深度学习入门课程---池化层(Pooling)原理视频教程,希望能够学习者提供帮助,实现对池化层(Pooling)原理基础知识的掌握与理解,为后续学习做好铺垫,实现池化层(Pooling)原理的灵活运用
java对象池化技术 java对象池化技术 java对象池化技术
基于矩阵2-范数池化的卷积神经网络图像识别算法.pdf
池化波分介绍
一、相关理论 二、算法概述 三、算法源码实现
利用python代码实现了平均池化的功能,能对图像进行较好的池化
使用Python语言实现图片降采样常用的池化操作,实现了常见的最大池化和均值池化。
网络游戏-基于小波池化卷积神经网络的SAR图像分割方法.zip
基于通道池化的深度人脸识别网络.pdf
依赖知识a) 熟悉全连接层、损失函数的反向传播b) 熟悉卷积层的反向传播-多通道、无padding、步长1c) 熟悉池化层Max Pooling、Average
我们对GCNNs的几种池方法进行了实证评估,并将这些图池化方法与三种不同架构(GCN、TAGCN和GraphSAGE)进行了组合。我们证实,图池化,特别是DiffPool,提高了流行的图分类数据集的分类精度,并发现,平均而言,TAGCN...
最大值池化层梯度反向传播1
1.全连接层的作用 2.全局平均池化的理解 1.全连接层的作用 2.全局平均池化的理解
No More Strided Convolutions or Pooling:A New CNN Building Block for Low-Resolution ...提出了一个名为SPD-Conv的新的CNN构建块,它完全消除了步长和池化操作,取而代之的是一个空间到深度卷积和一个无步长卷积。
云计算——安全资源池化.pdf
基于MATLAB的神经网络池化过程示例基于MATLAB的神经网络池化过程示例
1.领域:FPGA,maxpool最大化池化算法 2.内容:【提供操作视频】vivado2019.2平台中纯verilog开发的maxpool最大化池化处理实现,含testbench 3.用处:用于maxpool最大化池化算法编程学习 4.指向人群:本科,硕士,...
卷积神经网络中的自适应加权池化.docx