- 博客(57)
- 收藏
- 关注
原创 Linux(Ubuntu)使用不同版本的CUDA(nvcc)
安装不同版本的CUDA。命令查看当前的CUDA(nvcc)版本。可以看到安装过不同版本CUDA的路径。不同版本的CUDA下载地址。
2023-04-27 16:53:14
2106
原创 Windows Terminal 直接打开 Anaconda 标签
每次用Anaconda都要点这玩意,如何才能直接在Terminal 里面新建Anaconda标签?点右下角sava保存,当然也可在Icon里给它加个小图标。开始菜单找到Anaconda的命令行右键,打开文件位置。再打开新的标签页已经有Anaconda可选了。打开Windows Terminal。点下拉箭头,setting。
2023-04-13 22:07:57
384
原创 Bullet安装 与 Visual Studio开发环境配置
环境:Bullet3 Viusal Studio 2017 Windows10工具:Cmake-3.16.30 准备下载Bullet:https://github.com/bulletphysics/bullet3下载Cmake:https://cmake.org/download/ (选择Windows win64-x64 ZIP)1 编译Bullet库打开cmake-3.16....
2020-02-20 01:11:32
2413
7
原创 OSG笔记:NodeVisitor原理
模仿OSG的NodeVisitor机制实现简易访问者模式(Visitor Pattern)Node.h#pragma once#include <iostream>#include <vector>#include "NodeVisitor.h"#include "NodeCallback.h"class NodeVisitor;class Node{...
2019-05-16 15:03:53
1650
原创 TensorFlow入门(3):反向传播
环境:Ubuntu 16.04,Python 3,Tensoflow-gpu v1.9.0 ,CUDA 9.0反向传播反向传播即:训练模型参数,在所有参数上使用梯度下降,使得模型在训练数据上的损失函数最小。神经网络实现的第一步就是准备数据集。数据集中除了特征值,还要有这组特征相对应的标签值(已知答案)。我们就是利用这些已知的数据对&amp;lt;特征,标签&amp;gt;&amp;lt;特征...
2019-01-05 21:38:55
959
原创 TensorFlow入门(2):前向传播
环境:Ubuntu 16.04,Python 3,Tensoflow-gpu v1.9.0 ,CUDA 9.01. 神经网络实现步骤准备数据集,提取特征,作为输入喂给神经网络(Neural Network,NN)搭建NN结构,从输入到输出(先搭建计算图,后用会话执行)。即使用NN前向传播算法,计算输出。大量特征数据喂给NN,迭代优化参数。即使用NN反向传播算法,优化参数。应用训练好的模...
2019-01-04 22:40:56
1229
原创 TensorFlow入门(1):张量、计算图、会话
环境:Ubuntu 16.04,Python 3,Tensoflow-gpu v1.9.0 ,CUDA 9.0张量(Tensor)张量(tensor):多维数组(列表)阶:张量的维数例如:阶名称例子0标量(scalar)s = 1231向量(vector)s = [1, 2, 3]2矩阵(matrix)s = [[1, 2, 3], [4, ...
2019-01-01 21:58:29
671
原创 vim插件:vim-plug下NERDTree、colorschemes
环境:Liunx, vim, git插件管理器vim-plugGithub地址:https://github.com/junegunn/vim-plug直接复制文档中 Installation -> Unix 的内容,回车curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubuserconte...
2018-12-30 16:56:45
5098
原创 Vim 常用操作
配置vim ~/.vimrc语法高亮syntax on行号set nu光标控制h jk l ← ↓↑ →w word →b back word ←ctrl+f forward page downctrl+b backward page upgoto line 88 88ggdown 10 lines 10jup 10 lines 10kgoto l...
2018-12-30 16:20:07
265
翻译 人工智能会超越人类智能吗?(Will Artificial Intelligence Surpass Human Intelligence?)
人工智能会超越人类智能吗?Jiachao Fang, Hanning Su, and Yuchong Xiao. School of Information, University of Texas at Austin摘要:人工智能(Artificial Intelligence,AI)作为一个热门话题,已经被应用于现代生活的方方面面,并且与其相关的各方面研究也正方兴未艾。然而,人工智能在不同...
2018-11-05 13:42:54
14151
1
翻译 Electron 基础教程-2.4 渲染进程(Renderer Process)
渲染进程(Renderer Process)正如上节所了解,main.js标识出了Electron渲染进程(Renderer Process)的HTML文件。渲染进程正是从mainWindow.loadURL()调用开始的:// and load the index.html of the app.mainWindow.loadURL(url.format({ pathnam...
2018-08-20 22:35:00
7723
翻译 Electron 基础教程-2.3 主进程(Main Process)
主进程(Main Process)正如之前所提,Electron有两大进程:主进程(Main Process)和渲染进程(Renderer Process)。在这个示例程序中,主进程代码就在main.js文件中。 Note 通常将主进程文件命名为main.js,这样表示Node从这里启动应用的主进程。当你的项目代码重构目录结构后,必须在package.json中将主进程文件重新指...
2018-08-20 22:33:56
2338
翻译 Electron 基础教程-2.2 修改为你的专属应用
修改为你的专属应用第一步要修改项目中的package.json文件。如果你没有使用示例项目而是建了一个全新的项目,package.json将会在npm init后被创建。package.json大体如下:{ "name": "electron-quick-start", "version": "1.0.0", "description": "A minimal Elec.
2018-08-20 22:32:44
2139
翻译 Electron 基础教程-2.1 获取Quick Start代码
一开始上手Electron可能会很迷茫:文件该放在哪?文件如何命名?代码从哪里开始写?代码应怎么组织?幸运的是,GitHub的Electron开发者创建了一个供初学者学习的GitHub仓库Electron Quick Start。我们将这个仓库中的案例为出发点学习Electron。代码仓库地址为https://github.com/electron/electron-quick-start,里...
2018-08-20 22:30:13
1124
翻译 Electron 基础教程-1.5 Electron是怎样工作的
Electron是怎样工作的Electron应用基于两个独立的进程:主进程(main process)和渲染进程(render process),如图1.2。 Figure 1-2. The two processes that power an Electron application 主进程主进程(main process)被用来处理系统级活动,例如生命周期事件(启动、准...
2018-08-20 22:28:46
1215
翻译 Electron 基础教程-1.4 为什么选择Electron
为什么选择Electron既然你选择了这本书,肯定是为了项目需求开发桌面应用,亦或是纯粹的个人兴趣。如果你曾开发过web应用,你应该对适配各种浏览器平台的痛苦历历在目。浏览器标准的适配过程经历了很多年,但web开发者仍要关注适配问题。对于那些与企业客户合作的开发者来说,更有可能被旧版浏览器和操作系统困扰。当你使用Electron开发时,你的应用中会有一个完整的Chromium引擎拷贝,因此...
2018-08-20 22:24:34
2575
翻译 Electron 基础教程-1.3 我应该知道什么?
我应该知道什么?与传统桌面开发不同,你仅仅要掌握HTML、CSS和JavaScript,以及基本的Node即可上手Electron。当然熟悉命令行操作也是极好的。将我们熟悉的web技术应用于桌面开发正是Electron的精髓。我们会用到Git来初始化项目,但是对Git的应用仅此而已了。当然版本控制系统是很重要的开发技能。本书将使用一种全新的方式介绍Electron的工作机制。由于Elect...
2018-08-20 21:56:59
397
翻译 Electron 基础教程-1.2 谁在用Electron
谁在用Electron如今有太多的开源项目,你方唱罢我登场,Electron值得花费精力学习吗?虽然Electron最初是用来开发GitHub Atom编辑器的,后来很多公司发现这个技术是很棒的桌面应用解决方案。并且鉴于Electron由知名公司背书,使用的风险是很小的。如果你去Electron官网就会发现大量的成功案例。显然GitHub是Electron的忠实拥趸,Atom编辑器正是基于...
2018-08-20 21:55:42
1066
翻译 Electron 基础教程-1.1 Electron是什么
GitHub ELectron(简称Electron)允许你仅仅使用HTML、CSS和JavaScript就可以构建桌面应用,这听起来有些野心勃勃。实际上正如Apache Cordova(也叫PhoneGap)允许只用HTML、CSS和JS来构建移动应用,Electron为桌面开发提供新可能。Electron最初是用于开发新编辑器Atom的技术,在2013年由Github工程师赵成开发。一开始...
2018-08-20 21:54:36
6086
原创 使用SVG做网页背景
使用重复的SVG图案(SVG Patterns)作为网页的背景,与传统的CSS相比有很多优点。本文介绍SVG制作网页背景的优势,并简要概括方法、相关资源和浏览器支持情况。SVG上手教程: SVG上手 Viewport and viewBox1. CSS方法首先看看传统的CSS方法如何将重复图案用作网页背景。原理很简单,我们将图案的URL指定给CSS的background属性(本例中...
2018-08-08 22:17:14
10327
原创 SVG基础
SVG简介SVG即可缩放矢量图形(Scalable Vector Graphics),是一种描述2D矢量图的格式,由W3C制定。SVG使用XML定义图形,因此可对SVG DOM每个元素进行定制。与HTML5的canvas绘图对比点此。SVG与其他的W3C标准,比如CSS、DOM和SMIL等能够协同工作。使用&amp;lt;svg&amp;gt;标签在HTML中嵌入SVG图形:&amp;lt;svg ver...
2018-07-02 20:54:09
510
原创 究竟什么是Vanilla JS?(娱乐向)
今天在读一本Electron入门书的时候突然发现一个奇怪的名词:Vanilla JavaScript。 这是什么高端框架?震惊之余打开了百gu度ge搜索,似乎发现了不得了的技术。比如下面这个老哥: 但是总觉得哪里不对,当我看到评论区的时候,发现已经下不了车了。 StackOverflow上关于Vanilla JS的回答告诉了我真相: 再看vanilla js官网http:/...
2018-05-24 22:45:04
19116
4
原创 vs code远程编辑文件
使用visual studio code远程访问和修改文件。本机:Windows,远程:Linux环境配置本机Windows安装openssh,以下链接下载安装:https://www.mls-software.com/files/setupssh-7.6p1-1.exe在控制台输入ssh查看命令是否有效: 远程Linux安装rmate:wget https:...
2018-04-08 13:22:01
29061
7
原创 React快速上手
通过create-react-app工具快速构建React项目,初步了解React工作机制。1. 环境配置忽略React的技术栈细节,使用create-react-app构建应用。 开发环境:node和npm(或cnpm)安装create-react-app:cnpm install -g create-react-app在工作目录下执行下列命令建立应用:create-react-app myap
2018-04-07 16:21:09
1399
翻译 Electron 基础教程-7.3 Node fs模块文件与目录操作
A Brief Look at Node’s FS Module读写文件操作调用了Node的核心模块:fs(File System)。这个模块的每个方法都提供了同步和异步两种版本,通常选择异步方式编写代码。异步方式就能防止打断用户交互操作,因为代码的执行不会被阻塞。fs模块基本的操作如下: * 打开或创建文件 * 获取文件状态和信息 * 写文件 * 读文件 * 关闭文件 * 删除文...
2018-03-20 22:28:54
8385
翻译 Electron 基础教程-7.2 文件打开对话框
The File Open DialogElectron不使用文件API,正如web应用一样,我们结合使用会话模块和Node的FS模块来完成文件操作。显示文件打开会话的基本方法是dialog.showOpenDialog。 首先将index.html的<body>中加入:<button id="select-directory">Choose a directory</button><tex
2018-03-20 17:07:09
4978
1
翻译 Electron 基础教程-7.1 对话框
Working with the Dialog ModuleElectron的会话模块(dialog module)为我们提供了显示系统级对话框的能力,包括文件的打开与保存和多种警告。如果你写过传统的web应用就会意识到,这些对话框在web环境下并不是都能使用的。在这一章节,我们将会学习这些对话框的使用以及探究它们的各种参数。会话模块仅限于在主进程中使用,这意味着你只能使用渲染进程经由进程间通信(I
2018-03-20 16:06:14
690
翻译 Electron 基础教程-6.4 IPC监听器
我们可能想要移除掉某个IPC监听器,IPC模块为异步和同步进程提供了相似的语法。如果想要移除主进程中的单个监听器,语法为:ipcMain.removeListener(channel name, function)类似地,在移除渲染进程的单个监听器:ipcRenderer.removeListener(channel name, function)其中
2018-03-19 23:27:22
3238
翻译 Electron 基础教程-6.3 异步IPC通信
Asynchronous IPC Messaging通常情况下,通过发送IPC消息触发的事件可能会需要很长时间来调用方法,然后返回给渲染进程。这会使渲染进程暂停工作一段时间,很影响应用的用户体验。为了解决渲染器假死的问题,可用异步IPC方法来实现。 首先给index.html的&lt;body&gt;内容添加两项:&lt;button id="sendAsyncMsgBtn"...
2018-03-19 23:24:18
1361
翻译 Electron 基础教程-6.1 IPC模块
Understanding the IPC Module上章我们在为应用添加上下文菜单时候简单使用了进程间通信(inter-process communication,IPC)机制,本章我们将深入探索IPC模块的原理。虽然IPC可能不是最富魅力的API模块,但它无疑是我们构建应用程序的根基。Getting StartedElectron程序被分为两个独立的部分:主进程和渲染进程...
2018-03-19 23:10:36
946
原创 Node.js 1-搭建简单的web服务器
在Node环境下创建一个基本的web服务器,可以监听客户端的http请求,实现类似Nginx、Apache等服务器的功能。环境:windows 10,Node.js v8.2.1一、创建server.js文件例如在工作目录下新建文件server.js,并写入如下代码:上述简单代码require了Node自带的http模块,并调用其 createServer() 方法创建了一个基本的HTTP服务器。...
2018-03-05 21:01:00
1029
原创 JavaScript函数 1:函数定义与闭包的概念
一、定义函数JavaScript定义函数有两种方法:函数声明和函数表达式。1. 函数声明function funcName(arg0, arg1, arg2) { //...}特性:函数声明提升(function declaration hoisting)。在执行代码前会先读取函数声明,因此可以将函数声明放在调用语句之后:test();function test(a) { //...
2018-02-21 17:27:47
389
原创 计算几何入门 1.7:凸包的构造——分治法
Graham Scan算法说明了凸包构造问题的下界O(nlogn)是可以达到的。其实O(nlogn)的算法远不止这一种,分治法就是一种能达到O(nlogn)复杂度的思想。在此引入运用分治思想的两种算法来构造凸包。一、归并排序与分治思想引入新算法之前依旧先来回顾一个经典排序算法:归并排序(merge sort)。归并排序的基本流程如下:算法分为两个阶段:分(divide)和归并...
2018-02-08 17:26:50
3048
原创 计算几何入门 1.6:凸包的构造——Graham Scan算法
上文简要分析出了凸包构造问题算法的下界:O(nlogn),在此就引入一种下界意义上最优的算法:Graham Scan算法。这种算法可以保证在最坏情况下时间复杂度也不超过nlogn。我们先大致了解一下算法的流程,然后通过一个例子深入算法的细节,最后给出理论性的分析。一、Graham Scan算法流程假设待处理点集S共有n个点。Graham Scan首先要做的是一个预处理排序操...
2018-02-08 01:03:41
5503
1
原创 计算几何入门 1.5:凸包构造算法下界
从极点法的O(n^4)复杂度,到极边法的O(n^3),再到增量构造法和Jarvis March的O(n^2),我们经历了将特定问题算法不断优化、降低复杂度的过程。那么还有比O(n^2)更高效的算法吗?凸包构造算法的下界是什么?推广到一般情况,在计算模型固定的情况下特定问题的复杂度下界又是如何确定的?在计算模型固定的情况下特定问题的复杂度下界(lower bound)是确定的。严谨考虑,在...
2018-02-06 16:11:22
1359
原创 计算几何入门 1.4:凸包的构造——Jarvis March算法
回顾凸包构造算法:极点法、极边法和增量构造法,其复杂度分别为O(n^4)、O(n^3)和O(n^2),效率经过优化已经大大提高了。接下来引入一种新的算法——Jarvis March,其复杂度也是O(n^2),但是相较于增量构造在最好情况下效率是较高的。一、选择排序依旧是先回顾一个经典算法:选择排序(selection sort)。排序过程可以归结为下图:对比插入排序,可以发现sor...
2018-02-06 00:32:35
5078
3
原创 计算几何入门 1.3:凸包的构造——增量构造法
极点法和极边法的复杂度分别为O(n^4)和O(n^3),当点集S的规模稍大时就难以适用了。为了满足实际需要必须寻找更高效的算法来构造凸包。一、减治在引入新算法之前首先来回顾一下经典的算法思想:减治(decrease and conquer),注意不是分治(divided and conquer),二者稍有区别。简单来讲就是将问题划分为一个个简单的小问题,减而治之,逐个求解,最终就能得到整个...
2018-02-05 16:23:38
2604
原创 计算几何入门 1.2:凸包的构造——极点法和极边法
一、极点(extreme point)继续考虑钉子与橡皮筋的例子。我们可以发现边缘上的钉子是对范围圈定“有贡献”的,而范内部的的钉子对范围圈定是“没有贡献的”。这只是直观的结论,严谨考虑我们将其抽象为极性与极点的概念。简单的数学前提:过一个点有无数直线;有向直线可以将平面划分确定的左右两部分;可以在图像上表示为:可以发现,边缘上“有贡献”的钉子,总可以找到一条穿过它的有向...
2018-02-04 20:40:04
4421
1
原创 计算几何入门 1.1:凸包的概念
一、什么是计算几何:计算几何学(computational geometry)发展于二十世纪七十年代末,是一个正在飞速发展的新型学科。作为一个计算机算法类学科的分支,计算几何讨论更多的是计算而非几何,几何只是它的表现形式,核心还是算法。现代意义上的计算几何起源于1978年M.I.Shamos的博士论文,是计算机图形学、CAD、人工智能等多领域理论基础。计算几何可以简单理解为“算法设计与分析”课...
2018-02-04 16:07:26
10618
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人