六月计划

0

Scheme

  1. Learn Scheme
  2. Write Scheme learning notes
  3. Build a project with Scheme (content hasn’t been decided)
  4. Build a Scheme interpreter

Tensorflow && Machine Learning

  1. Learn Tensorflow

  2. Build:

    • MNIST CNN
    • Capsule
  3. Final project:

    Capsule - written chinese characters

Capsule - written chinese characters (details)

Net

Use the capsule net refered to above written by myself

Dataset

Build a website to collect data.

登峰杯记事

距离参加登峰杯已过去半年,来到北京时正是盛夏,盛夏的风吹拂着我,那时的我身躯上还没有高考倒计时的重压,身着薄衣,自由,期待。不知不觉我已身着冬装,而回望这段经历,心情仍然久久不能平静。趁着回忆尚且鲜活,尚未蒙上时间的尘埃导致模糊不清之时,我真该写点文字,来把它记录下来,封存在这排列成行成段的符号里。等到多年以后,就如同密封良好的陈酿,阅读文字,打开瓶盖,仍有扑鼻醇香。

Scheme学习笔记

letlambda的转换

在Scheme中,let往往是这样实现的:

1
2
3
4
(let ([var1 val1]
[var2 val2]
...)
e1 e2 ...)

可以被转换到:

1
((lambda (var1 var2 ...) e1 e2 ...) val1 val2 ...)

lambda的几种不同参数形式

1

1
(lambda (a1 a2 ...) ...)

固定参数个数,按位置分配给形参。

2

1
(lambda x ...)

所有参数作为列表分配给x

3

1
(lambda (a1 a2 . x) ...)

上两种方式的结合,先分配前几个形参,剩下的参数作为列表分配给x

从一个简单算法看算法与数学的联系

0

关于斐波那契数列

相比各位都很熟悉…但这里还是简单说一下:

斐波那契数列是这样的一个数列${a_n}:$
$$
对n \in N_+, a_{n+2} = a_n + a_{n+1}
$$
且有:
$$
a_1=1, a_2=1
$$
那么,根据定义,数列是这样子的:$1,1,2,3,5,8,13,21,34,55,89\cdots$

目标

我们希望可以写出一个算法,可以求出斐波那契数列中的任意项。

Programming in Lisp

0

本文译自SICP第一章,未征得原作者同意。

正文

我们需要有一个合适的语言用来描述过程,为此,我们选择了Lisp。正如日常想法用自然语言表达(比如法语英语或者中文)、对数量现象的描述用数学符号表达,关于过程的想法可以用Lisp来表达。Lisp在二十世纪五十年代被发明出来,它的初衷是对一种被称为递归式的特殊逻辑表达式的形式主义研究,作为一种运算模型。这门语言是由麦卡锡(John McCathy)构想的,并基于他的论文“Recursive Functions of Symbolic Expressions and Their Computation by Machine”(McCathy 1960)

用Spacemacs+CIDER写Clojure

Introduction

因为最近在玩Clojure,但是感觉Intellij+Cursive并不太顺手,具体表现在鬼畜的Paredit(Cursive给的应该也算是Paredit高仿吧)快捷键以及奇奇怪怪的问题。(重要原因还是因为Intellij长得不够好看)

于是开始玩Spacemacs+CIDER来写Clojure,感觉代码效率++++++++++++++++++++++

Features

(Tips: 图中是我正在写的一个Web Game0v0 Space Game-0.1.0-demo)

Clojure HelloWorld [猜数游戏]

最近买了黑客与画家,看到书评上说看完这本书可能会忍不住去学Lisp。果然,Paul大佬在书里把Lisp吹得神乎其神(233333),买完这本书的后一周我就又买了本Living Clojure。

关于Clojure

Clojure是Lisp的方言,然而它基于JVM。Clojure的创造者说:

你可以不喜欢Java,但你可以喜欢JVM。

emmm,明显是因为JVM平台lib丰富才苟了一波嘛,还要这样安慰自己。_(:зゝ∠)_

使用cifar-10训练DCGAN

DCGAN

DCGAN的全称是Deep Convolutional Generative Adversarial Network,深层卷积生成对抗网络。看名字就知道,这个网络和卷积有关,而且它也属于生成对抗网络。

生成对抗网络的目的是根据输入数据,生成与输入数据尽量相似的输出。为了达到这一目的,我们训练两个对抗的神经网络:Generator和Discriminator,他们目的不同,相互对抗。Generator的目的是生成尽量真实的图片从而骗过Discriminator,而Discriminator的目的则是鉴别图片的真假。