Neural Networks Learning I -Recognize Handwritten Digits
Python #DeeplearningThis is the beginning of my neural networks learning. I have read the books written by Michael Nielsen for a long time and I think now it’s time to complete the learning examples in first chapter of his book.
Introduction of some functionsI first want to show the use of some functions in his program example. These uses really surprise me a lot.
numpy.randomThe first function is the random function from the package numpy. In initialize the matrix, the random function is used ...
Typora 使用技巧
Markdown #Typora介绍Typora是一款很多人推荐的markdown编辑器,其对Markdown的支持真的是非常全!我以前试过Sublime, VS Code, Vnote等各种工具,这些软件都各有优劣。其中Vnote我觉得是做的比较良心的,特别是对搜索功能以及输入图片、表格的功能,缺点就是支持打字的手感差一些,而且预览模式也差一些。
通过学习,我发现typora可以做到很多事情,除了一般的插入图片、代码块、引用外,还有好多其他的功能,详细的介绍可以直接访问 Markdown Reference. 下面是官网的一些教程,我直接Copy了一遍。
OverviewMarkdown is created by Daring Fireball; the original guideline is here. Its syntax, however, varies between different parsers or editors. Typora uses GitHub Flavored Markdown.
Overview
Block Elements
Paragraph ...
平面波在双层介质的传播学性质
Optics目的目前我们课题组的实验基本都是片上的一些实验,实际的实验中片上会有一些光学微纳元件,如量子点、金纳米颗粒等。我最近需要计算片上的散射、透射性质,为了增加结果的精度,背景场最好是输入解析的表达式。将解析表达式输入进去COMSOL也得格外注意。
关系推导边界条件以及平面波的基本性质对于任意的平面波,当其在介质表面发生透射、反射时,由于其偏振方向和入射面的方向的不同,可以分两种情况来讨论
S偏振, 电场与入射面垂直,如下面的左图所示
P偏振,电场与入射面平行,如下面的右图所示
注意下面的图的正方向规定。因为不同的规定最后的表达式会有正负号的区别,我接下来的所有推导都是按照下面的图来的。
即任意的平面波可以写为S偏振和P偏振的合成
\vec{E}=\vec{E}^{s}+\vec{E}^{p}我们假设一平面波从介质1入射到介质2,我们规定的方向为由介质2指向介质1,则电场和磁场需要满足对应的边界条件
\vec{n}\times (\vec{E}_{1}-\vec{E}_{2})=0
\vec{n}\cdot (\vec{D}_{1}-\vec{D}_{2})=\sigm ...
由本征值计算本征向量
Math最近需要求解任意本征值的本征矢量,目前有两种方法计算本征值,一种是传统的方法,另外一种是陶哲轩ref1去年提出的一种方法。后来证明这种方法不是他首次提出,但是确实是一种新的思路。本次笔记是为了展示如何用他的结论。例子也是他的论文找的。
计算本征值计算本征值很容易,例如对于矩阵,
MX=\lambda X\implies (M-\lambda I)X=0\implies \det(M-\lambda I)=0方法简述传统方法
(M-\lambda I)X=0将计算的本征值带回原矩阵求一个代数方程即可。
陶哲轩新方法
|v_{i,j}|^2 \prod_{k=1,k\neq
i}^{n}\left(λ_i(A)-λ_k(A)\right)=\prod_{k=1}^{n-1}\left(λ_i(A)-λ_k(M_j)\right)其中
$v{i,j}是特征值\lambda{i}对应特征向量的第j$个元素
是矩的第个特征向量(本征向量、本征矢)
$M{j}为矩阵A的第j个余子式,\lambda{k}(M_{j})是该余子式的第k$个特征值。
这种方法的好处是直接带公式就可以, ...
从COMSOL的log文件读取运算时间和内存并绘图
Python #Tools #Dataprocessing #COMSOL目的目前对于python处理文字有了一些心得,刚好最近在用COMSOL做数值计算,需要参数扫描。我想分析每次计算COMSOL需要的计算内存和运算时间,防止计算内存爆掉了。
具体操作COMSOL log文件信息详细记录了每一次扫描的一些进程,一般开头是这样的
123456789**********************************************COMSOL 5.4.0.225 progress output file**********************************************Thu Feb 20 21:36:07 CST 2020<---- Compile Equations: Wavelength Domain {st1} in Study 1 {std1}/Solution 1 (sol1) {sol1} ------------------------------------------------------------Started ...
用python对文件进行特定行操作
Python #Tools #Dataprocessing介绍我们会有一些场景会需要对一些文件的某些行进行操作,比如删除、增加、修改一些字段。我自己的需求是,本网站的所有博客会有一些font matter字段,我需要将这些字段删除掉而将字段里面的标题提取出来作为标题。如下图所示
12345678910---title: 用python模糊匹配文件夹下的文件并复制文件到另外的文件夹date: 2020-02-16 00:25:30tags:- Pythoncategories:- 技术mathjax: truecover: https://raw.githubusercontent.com/knifelees3/my_pictures/master/icons/PythonICON.jpg---
这是本片笔记的font matter,因此我们需要首先读取掉两个---,之后的就是我们的正文。另外还需要将title:后面的字段提取出来。作为第一行。下面是具体的实现方法
具体实现如何实现对文件的读取呢?用open函数即可,如下,其中第二个参数r,w,a分别代表只读、写(覆盖),写(补充)。打 ...
使用Nginx来部署静态博客
Web #Blog介绍以前一直不懂,我想做一个网页的时候,为啥要购买服务器?购买域名?有什么联系?实际上
购买服务器是因为服务器稳定,如果你让自己的电脑作为服务器也是可以的。但是得有公网ip,不然别人的内网穿透之后,才能访问你的服务器。
要域名是因为域名便于记忆,也可以彰显个性。直接输入ip访问也是可以的。
我想把静态网页部署在课题组的服务器上,局域网访问,网络上搜索一遍之后,采用了nginx,
Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品nginx的用处很大,但是我只是拿它来部署我自己的静态网页。
安装
nginx不仅可以在Linux上使用,也可以在windows上使用,下面分别介绍安装,我们可以在这里下载:Nginx
Windowswindows下载下来是一个压缩包,不用安装,你可以将其拷贝到C盘的program fiels,但是修改配置文件会不方便,我建议还是放在其他位置,然后 ...
使用Sphinx来书写静态博客
Web #Blog
初衷学会了hexo发布静态博客以后,再也没有折腾博客的事情了,最近被疫情困在家里,想尝试下当初没有成功的sphinx。
步骤安装包和主题这种步骤CSDN的教程很多都写的很烂,感觉还是知乎更加靠谱,这是知乎的一个教程:用sphinx快速编写一份技术手册。
首先是要安装好对应的软件和包。假设你已经安装好了python 3,pip,那么直接安装即可
1pip install sphinx
然后需要安装一个主题,sphinx的主题可以从https://sphinx-themes.org/查看,种类很多,但是都很简朴,没有那么花里胡哨。安装也很简单,比如我们要安装主题sphinx_rtd_theme,直接使用
1pip install sphinx_rtd_theme
该主题很多官方软件都在用,比如开源FDTD软件MEEP的说明文档,就是用这个。
创建项目安装好了之后,就得创建项目了。选择一个文件夹作为你的网页文件夹,在该文件夹打开命令行,然后输入
1sphinx-quickstart
之后就会有一系列的确认的东西,有的是插件的添加,可以按照默认的选,也可以全选y,这样的话配 ...
Python虚拟环境是什么
Python #Virtualenviroment以前不理解Python虚拟环境,听名字觉得不明所以,查看文档后觉得非常简单。下面做一个记录
虚拟环境和包概述Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。
这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。
这个问题的解决方案是创建一个 virtual environment,一个目录树,其中安装有特定Python版本,以及许多其他包。
然后,不同的应用将可以使用不同的虚拟环境。 要解决先前需求相冲突的例子,应用程序 A 可以拥有自己的 安装了 1.0 版本的虚拟环境,而应用程序 B 则拥有安装了 2.0 版本的另一个虚拟环境。 如果应用程序 B 要求将某个库升级到 3.0 版本,也不会影响应用程序 A 的环境。
创建虚拟环境用于创建和管理虚拟环境的模块称为 venv。ven ...
Python矩阵使用小结
Python #Dataprocessing介绍对于我个人而言,无论是用MATLAB,或者是python,我都没有系统的学习过。喜欢在网络上搜索一个别人的代码,拿来改一改,就直接用,不明白背后的机理。实际自己编程时候,不去网络上搜索就寸步难行。为了改变这种状况,我决定对于编程进行一些定期的专题总结。python的numpy库可以很好的支持矩阵的一些运算,对于数值计算以及数据处理非常方便,但是自己在使用的过程中发现有很多特性需要着重总结一下,避免后续写程序的时候做一些无用功。本篇笔记主要是想详细讨论矩阵这一元素的基本操作以及可视化规律。首先应该插入对应的包。
12import numpy as npimport matplotlib.pyplot as plt
矩阵的初始化 矩阵初始化有好几种形式,也有一些特殊的函数来初始化,我们要分清矩阵的形状如何。是行矩阵还是列矩阵,首先是默认的初始化化行和列
12A=np.array([1,2,3])print(A,A.shape)
1[1 2 3] (3,)
12B=np.array([[1],[2],[3]])print(B,B.shape)
...