- 博客(160)
- 收藏
- 关注
原创 tensorflow中损失函数加上正则项
https://zhuanlan.zhihu.com/p/46605257两种方式,写的很好https://blog.csdn.net/u012436149/article/details/70264257
2020-12-15 15:54:46 769
原创 tensorflow中optimizer minimize自动训练简介和选择训练variable的方法
正文tensorflow提供了多种optimizer,典型梯度下降GradientDescent和Adagrad、Momentum、Nestrov、Adam等变种。典型的学习步骤是梯度下降GradientDescent,optimizer可以自动实现这一过程,通过指定loss来串联所有相关变量形成计算图,然后通过optimizer(learning_rate).minimize(loss)实现自动梯度下降。minimize()也是两步操作的合并,后边会分解。计算图的概念:一个变量想要被训练到,前提他在
2020-12-15 11:16:37 1336
原创 canvas学习笔记未完待续
canvas学习笔记:基本认识:<canvas>是一个可以使用脚本(通常为JavaScript)来绘制图形的 HTML 元素.canvasx相当于一个画布,它可以用于绘制图形、创建动画. <canvas> 最早由Apple引入WebKit,除一些过时的浏览器不支持<canvas> 元素外,所有的新版本主流浏览器都支持它。基本用法:<canvas id="tutorial" width="150" height="150"></canvas>
2020-12-15 09:59:36 269
原创 UCMD数据集旋转数据增强
由于UCMD数据集较少,只有2100张,使用旋转数据增强,此代码用于增强2100张。import tensorflow as tfimport os def trans(img, img_data, sav): rotate_90 = tf.image.rot90(img_data, k=1) encoded_image_r9 = tf.image.encode_jpeg(rotate_90) with tf.Session() as sess:
2020-12-14 16:23:25 756 1
原创 python脚本实现将某一路径下的UCMD分类数据集格式转换
python脚本实现将某一路径下的UCMD分类数据集格式转换(tif–>jpeg/其他)from PIL import Imageimport osdef transimg(path): #path:imgdataset_dir for filename in os.listdir(path): img_path = path + '/' + filename str = img_path.rsplit(".", 1) outpu
2020-12-11 14:51:52 213
原创 秋季代码调试报错记录
1.创建虚拟环境时:An unexpected error has occurred. Conda has prepared the above report.解决方法:https://blog.csdn.net/weixin_42236288/article/details/1008548782.pip install tensorflow超时异常解决方法:采用国内源https://blog.csdn.net/Warship_/article/details/86755281注意安装的时cpu还
2020-10-28 22:23:01 302
原创 神经网络中Epoch、Iteration、Batchsize相关理解和说明
https://blog.csdn.net/program_developer/article/details/78597738
2020-10-27 11:21:40 127
原创 回溯算法--全排列
const permute = (nums) => { const res = []; const used = {}; dfs([]); function dfs(path) { if (path.length == nums.length) { res.push(path.slice()); return; } for (const num of nums) { // if (path.includes(num)) con
2020-10-18 19:53:44 98
原创 leetcode236二叉树中最近的公共祖先
最近公共祖先的定义: 设节点 rootroot 为节点 p, qp,q 的某公共祖先,若其左子节点 root.leftroot.left 和右子节点 root.rightroot.right 都不是 p,qp,q 的公共祖先,则称 rootroot 是 “最近的公共祖先” 。根据以上定义,若 rootroot 是 p, qp,q 的 最近公共祖先 ,则只可能为以下情况之一:p 和 qq在 root 的子树中,且分列 root 的 异侧(即分别在左、右子树中);p = root ,且 q 在 root
2020-10-13 21:54:34 175
原创 block,inline和inline-block
常见的块元素:div、p、h1-h6、table、pre(格式化文本)、ol/ul内联元素:span\img\input\strong\em\a根据display属性,我们可以将元素分为块级元素(block)和内联级元素(inline)。它们最大区别是:block元素可以设置宽度,独占一行。inline元素宽度由内容决定,与其他元素并列在一行。display:blockblock元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素默认宽度是父元素的100%,默认高度被内
2020-10-09 10:33:19 329
原创 Deep Hashing Network for Efficient Similarity Retrieval
由于存储和检索效率的原因,哈希算法被广泛应用于大规模多媒体检索的近似最近邻搜索。监督哈希通过利用数据对的语义相似性来提高哈希编码的质量,近年来受到越来越多的关注。对于大多数现有的用于图像检索的监督散列方法,图像首先被表示为手工制作或机器学习的特征的向量,然后是另一个生成二进制代码的单独量化步骤。然而,可能产生次优的散列编码,因为量化误差在统计上没有最小化,并且特征表示与二进制编码不是最佳兼容的。在本文中,我们提出了一种新的用于监督哈希的深度哈希网络(DHN)架构,在该架构中,我们共同学习适合哈希编码的良好图
2020-10-08 21:55:53 555
原创 事件代理原理、应用及其实现
简易版本:事件委托本质上是利用了浏览器事件冒泡的机制。因为事件在冒泡过程中会上传到父节点,并且父节点可以通过事件对象获取到目标节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件,这种方式称为事件代理。使用事件代理我们可以不必要为每一个子元素都绑定一个监听事件,这样减少了内存上的消耗。并且使用事件代理我们还可以实现事件的动态绑定,比如说新增了一个子节点,我们并不需要单独地为它添加一个监听事件,它所发生的事件会交给父元素中的监听函数来处理。事件委托呢,又叫事件代.
2020-10-07 12:03:01 805
原创 事件循环详细版
事件循环:javascript是一门单线程的非阻塞的脚本语言。js为什么是单线程的语言?是因为js的执行引擎只有一个线程,不会在执行期间开启新的线程,而非浏览器是单线程的。浏览器是多线程的。Event Loop是javascript的执行机制,也是js实现异步的一种方法。单线程意味着,javascript代码在执行的任何时候,都只有一个主线程来处理所有的任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。保证了程序执行的一致性。不管是什么新框架新语法糖实现的所谓异步,其
2020-10-07 09:53:18 219
原创 9.8.1顺丰二面准备
1.Vue组件data为什么必须是个函数Vue组件可能存在多个实例,JS 里对象是引用关系,如果使用对象形式定义data,则会导致它们共用一个data对象,那么状态变更将会影响所有组件实例,这是不合理的;采用函数形式定义,每个实例中的data都因为函数有了自己的作用域,互不干扰。有效规避多实例之间状态污染问题。而在Vue根实例创建过程中则不存在该限制,也是因为根实例只能有一个,不需要担心这种情况。2.keep-alivekeep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,避免
2020-09-08 17:11:36 193
原创 9.6.2 顺丰面试准备
顺丰前端一面面经1.CSS 选择器优先级!important>标签内部1000(内联样式)>当前文件的嵌入样式表(例如2.css如果画个圆https://www.cnblogs.com/jscode/archive/2012/10/19/2730905.html内容区为0,设置某一条边的颜色为实色,其他边的颜色为transparent,并且设置颜色的边长为其他边的两倍。css绘制的梯形并不是一个容器,只是容器的一条边。css把容器的其余三条边设置为透明的,只显示需要的一条边,就
2020-09-07 22:37:38 424
原创 9.6.1动态规划-股票的最大利润
题目:三步走:step1:定义数组元素的含义,这里定义dp[i]表示前 i日的最大利润。step2:找出数组元素之间的关系式,也就是可以利⽤历史数据来推出新的元素值.前i日最大利润=max(前(i−1)日最大利润,第i日价格−前i日最低价格)step3:找出初始值, dp[0]=0 ,即首日利润为 0 ;返回值: dp[n - 1],其中 n 为 dp 列表长度。优化: var maxProfit = function(prices) { //此问题的实质就是找到
2020-09-06 09:37:04 298
原创 9.5.3关于promise的亮灯问题
红灯3秒亮一次,绿灯2秒亮一次,黄灯1秒亮一次;如何使用Promise让三个灯不断交替重复亮灯?function red() { console.log('red');}function green() { console.log('green');}function yellow() { console.log('yellow');}/*控制每盏灯,使其按某节奏闪烁(设置的时间)命名为 myLight函数,参数为亮灯函数与时间参数计时部分使用setTimeout实现*/
2020-09-05 18:24:16 573
原创 9.5.2+async、await相关用法
async函数返回一个 Promise 对象。async函数内部return语句返回的值,会成为then方法回调函数的参数。道理同promise,会封装成return promise.resolve(返回的值)async function f() { return 'hello world';}f().then(v => console.log(v))// "hello world"async函数内部抛出错误,会导致返回的 Promise 对象变为reject状态。抛出的错误对象会
2020-09-05 17:47:56 190
原创 9.5.1-promise第二次回顾+面试真题解析
1.题目的回顾:做题tip:0.如果new promise里面没有被resolve或者reject,因此状态还是pending,后面的promise.then并不会执行,它只有在被改变了状态之后才会执行。1.Promise的状态一经改变就不能再改变。2.catch不管被连接到哪里,都能捕获上层未捕捉过的错误。至于then3也会被执行,那是因为catch()也会返回一个Promise,且由于这个Promise没有显示的返回值,moren 为returnundefined,包装成return Pro
2020-09-05 11:21:05 194
原创 秋招感言
感觉自己很幸运,赶上了百度秋招提前批的末班车,第一家面的百度结果就中了,目前简历状态在offer流程中了,说是九月下旬会发意向书,不管怎样,自己菜是真的,当然自己心里也没有那么骄傲,感觉心里有点虚,立个flag:每天整理6-8个面试考点,每天1-2道算法题,每天还要做实验室的事情,咬咬牙,挺过9月就好了,加油冲啊!!!...
2020-09-04 20:52:19 203
原创 动态规划
动态规划利⽤历史记录,来避免我们的重复计算。⽽这些历史记录,我们得需要⼀些变量来保存,⼀般是⽤⼀维数组或者⼆维数组来保存。第⼀步骤:定义数组元素的含义,就是规定你这个数组元素的含义,例如你的 dp[i] 是代表什么意思?第⼆步骤:找出数组元素之间的关系式,有⼀点类似于我们⾼中学习时的归纳法的,当我们要计算 dp[n] 时,是可以利⽤ dp[n-1],dp[n-2]…dp[1],来推出 dp[n] 的,也就是可以利⽤历史数据来推出新的元素值,所以我们要找出数组元素之间的关系式。第三步骤:找出初始值。即使
2020-08-31 18:20:36 91
原创 BFS和DFS的JS实现
1.DFS 与 BFS 的特点比较:BFS 的应用一:层序遍历乍一看来,这个遍历顺序和 BFS 是一样的,我们可以直接用 BFS 得出层序遍历结果。然而,层序遍历要求的输入结果和 BFS 是不同的。层序遍历要求我们区分每一层,也就是返回一个二维数组。而 BFS 的遍历结果是一个一维数组,无法区分每一层。所以要在bfs的基础上,在每一层遍历开始前,先记录队列中的结点数量 n也就是这一层的结点数量),新创建一个数组level,将n个节点的值push进去,然后循环遍历n个节点,分别将节点的左右节点
2020-08-31 16:26:40 888
原创 如何水平垂直居中?
1.绝对定位,利用负边距:父元素(position:relative),且把子元素的position设为absolute,绝对定位;以及设置left和top为50%;绝对定位的百分比是相对于父元素的宽高。其实此时,我们可以知道,子元素的左上角这个点,是水平垂直居中的,当我们设了负边距时,负的外边距可以让元素向相反方向定位,我们可以理解为这个子元素向上向左各移了自身长度的一半,这就达到了水平垂直居中。这种方式比较好理解,兼容性也很好,缺点是需要知道子元素的宽高2.Transform,和上面的方法同理,
2020-08-02 17:41:32 356
原创 css的两种盒模型的区别?
当对一个文档进行布局的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型,将所有元素表示为一个个矩形的盒子。CSS 决定这些盒子的大小、位置以及属性(例如颜色、背景、边框尺寸…)。其实每个元素都是一个一个的盒子,它由margin,border,padding,content组成,平时我们就在对里面的content设置各种样式,整体的盒子就会根据设置的样式渲染在浏览器中。两种盒模型:1.W3C标准盒模型box-sizing="content-box";当我们对一个元素设置他的width
2020-08-02 12:21:12 2028
原创 你用过哪些 HTML 5 标签?
选自MDN自己理解的部分内容CanvasMDN1.audio标签:HTML 元素用于在文档中嵌入音频内容。 audio元素可以包含一个或多个音频资源。<audio controls autoplay loop src="/media/examples/t-rex-roar.mp3"> Your browser does not support the </audio>controls:如果声明了该属性,浏览器将提供一个包含声音,播放进度,
2020-08-02 11:26:40 455
原创 H5 是什么?
HTML5并不是一项技术,而是一个标准。大家误以为所谓 H5 开发,就是遵循 HTML5 标准的前端开发而已。事实上,所谓的 H5 开发,通常指代在微信中,点开后会在微信内部展开的精美的移动端的 Web 页面(H5表示移动端页面)。显然,这个问题更深层次是在问:开发一个 H5 页面,需要用到哪些技术。明确了问题,就很容易得出答案了:显然,这个问题更深层次是在问:开发一个 H5 页面,需要用到哪些技术。明确了问题,就很容易得出答案了:页面素材预加载技术:可以选择 createJS 之中的 pre
2020-08-02 00:16:04 4085
原创 meta viewport 是做什么用的,怎么写?
1. 什么是 meta 标签?可提供有关页面的元信息2.移动端适配的目的:通常我们在pc上看到的页面都是比较大的,在pc上访问页面是正常显示的,默认是不会被缩放的,除非是手动进行了缩放,页面才会被放大比例或者是缩小比例显示。但是在移动端是不一样的,如果将一个pc端的页面放到手机端进行访问,那么可能出现页面挤到一起、布局错乱或者出现横向滚动条的情况,我们给用户带来不好的体验。还有在屏幕尺寸大小不同的手机上进行访问页面时,页面显示的效果不能合理的展示,我们期望的是在手机屏幕较大时显示的内容比较大一些,手机
2020-08-01 23:49:24 6910
原创 你是如何理解 HTML 语义化的?
面试题–你是如何理解 HTML 语义化的?简单来说:就是用正确的标签做正确的事。比如:头部:header 导航:nav 主体内容:main 标题:h1 ~ h6 段落:p 侧边栏:aside 页脚:footer从历史讲起,大家知道前端也是这两年才发展起来的,以前的前端都是写写展示页,所以其实很早以前,是没有专门的前端的,需要写网页了,就让后端看看顺手写了,所以那时候的网页,都是一堆Table 或者 满屏幕的div标签。不要说给别人看自己的HTML结构了,估计自己也看的够累。而且对于搜索引擎和设备
2020-08-01 17:35:46 1684
原创 数据结构--排序和查询
排序:1.选择排序: /** * 交换数组两个下标的数据 * @param {*} arr * @param {*} i1 * @param {*} i2 */ function swap(arr,i1,i2){ var temp=arr[i1]; arr[i1]=arr[i2]; arr[i2]=temp; } function selectionSort(arr){
2020-07-26 17:12:50 264
原创 链表类题目分析
一:递推法递推阶段: 每次传入 head.next ,以 head == null(即走过链表尾部节点)为递归终止条件,此时直接返回。回溯阶段: 层层回溯时,将当前节点值加入列表,即tmp.push(head.val),最终返回tmp.执行时,相当于函数调用函数,函数调用函数,…,直到触发终止条件。回溯(即返回时),前面的那些函数才算“执行完毕”,才可以执行下面的 tmp.add(head.val),从最后面一个节点开始依次回溯push。function reversePrint(head) {.
2020-07-25 17:54:06 165
原创 算法--线性结构--链表
递归(recursion)是函数式编程思想的产物,它使用数学函数的思想进行运算,只要在数学逻辑上是合理的,即代码中的函数一定合理。使用递归时,无须深究其运行过程!斐波拉契数列的特点是:第1位和第2位固定为1,后面的位,其数字等于前两位之和,比如: [1, 1, 2, 3, 5, 8, 13, 21, …]求斐波拉契数列第n位的值,n>0如果使用函数f(n)来表示斐波拉契数列第n位的值,通过数学分析,可以轻松得到:f(1) = 1f(2) = 1f(n) = f(n-1) + f(n-2)
2020-07-25 00:49:02 229
原创 Promise
一、定义:所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise对象有以下两个特点。(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态.2)一旦状态改变,就不会再变,任何时候都可以得到这
2020-07-24 15:54:42 437
原创 剑指 Offer 11. 旋转数组的最小数字
解法:找规律小于前一个元素的元素是最小的元素,如果没有找到就是第一个元素。(该数组最开始的0个元素搬到数组的末尾) var minArray = function(numbers) { for (var i=0;i<numbers.length;i++){ if(numbers[i]>numbers[i+1]){ return numbers[i+1] } } retu.
2020-07-22 16:52:43 79
原创 剑指数组类算法题目总结
题目描述:JZ50数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。function duplicate(numbers, duplication) { var len=numbers.length; if(numbers == null |
2020-07-22 15:57:52 118
原创 css面试整理(更新中。。。)
大佬的文章1.怎么让一个不定宽高的 DIV,垂直水平居中?1.使用Flex只需要在父盒子设置:display: flex; justify-content: center;align-items: center;2.使用 CSS3 transform父盒子设置:display:relativeDiv 设置: transform: translate(-50%,-50%);position: absolute;top: 50%;left: 50%;PS:translate()函数是css3的新特
2020-07-21 10:01:02 133
原创 css3 Flex 布局教程
flex教程flex实例篇圣杯布局的实现圣杯布局的实现?上部(header)和下部(footer)各自占领屏幕所有宽度。上下部之间的部分(container)是一个三栏布局。三栏布局两侧宽度不变,中间部分自动填充整个区域。中间部分的高度是三栏中最高的区域的高度。<div class="header"> <h4>header</h4></div><div class="container"> <div cl
2020-07-20 23:46:23 170
原创 js函数柯里化
https://www.jianshu.com/p/5e1899fe7d6b接收函数作为参数的函数,都可以叫做高阶函数。柯里化其实就是高阶函数的一种特殊用法。柯里化是指这样一个函数(假设叫做createCurry),他接收函数A作为参数,运行后能够返回一个新的函数。并且这个新的函数能够处理函数A的剩余参数。用下面的例子解释:有一个接收三个参数的函数A。function A(a, b, c) { // do something}假如,我们有一个已经封装好了的柯里化通用函数createC
2020-07-20 11:18:45 102
原创 js基础面试题总结(不会的)
https://juejin.im/post/5ee03947e51d457889262921完整题目的链接见上面,截图了自己不会的,再加以总结。var b = a,此时a和b指向同一个对象。.运算符比 = 运算符高,先计算`a.x`,此时 b = { n:1, x:undefined}相当于给对象添加了x属性。a.x = a = {n:2};计算完a.x,再计算 = ,赋值是从右向左,此时a指向一个新对象。a = { n:2}a.x已经执行过了,
2020-07-19 22:21:44 158
原创 原型链总结及继承
https://www.muyiy.cn/blog/5/5.2.html#%E5%8E%9F%E5%9E%8B%E9%93%BE%E7%BB%A7%E6%89%BF原型链继承原型链继承的本质是重写原型对象,代之以一个新类型的实例。如下代码,新原型 Cat 不仅有 new Animal() 实例上的全部属性和方法,并且由于指向了 Animal 原型,所以还继承了Animal 原型上的属性和方法。function Animal() { this.value = 'animal';}Anima
2020-07-18 15:17:21 175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人