octave深度学习_Octave的安装

本文是参考吴恩达老师的深度学习视频而做的笔记

深度学习

引言

挑战:AI真正的挑战在于解决那些对人类来说很容易执行,但很难形式化描述的问题,比如识别人们所说的话/图像中的脸/分辨苹果和梨。

解决方案:让计算机从经验中学习,并根据层次化的概念体系理解世界,而每个概念是通过与某些相对简单的概念之间的关系来定义的。而如何绘制出这种关系,就是我们常说的深度学习。

区别

机器学习:AI系统需要具备自己获取知识的能力,即从原始数据中提取模式的能力。即研究人员不会编写指令控制机器,而是用大量数据和算法“训练”机器,让机器自己学会如何执行任务。

Octave的安装和使用

安装

brew update && brew upgrade

brew install gcc

brew install octave

注:不要安装4.0.0版本,该版本有重大bug.

使用

基本操作

加、减、乘、除

// 加

1+2

// 减

6-2

// 乘

3*4

//除

1/2

// 指数运算

2^3

逻辑运算

// 相等

1 == 2 % 注释内容

//不相等

1 ~= 2 % true

// 逻辑与

1 && 0 % false

// 逻辑或

1 || 0 % true

// 异或

xor(1,0)

修改提示符

PS1('>> ');

变量

a = 3

a = 3; % 阻止打印输出

打印或显示一个变量

a

disp(a)

// 显示默认位数

format long

a

format short

a

向量和矩阵

// 矩阵

A = [1 2; 3 4; 5 6]

// 行向量

v = [1 2 3]

// 列向量

v = [1; 2; 3]

//矩阵的其他生成

v = 1:0.1:2

v = 1:6

ones(2,3)

C = 2*ones(2,3)

w = ones(1,3)

w = zeros(1,3)

// 随机矩阵,数值0-1

w = rand(3,3)

// 服从正态分布

w = randn(1,3)

//

w = -6 + sqrt(10)*(rand(1,10000));

// 绘制成直方图

hist(w)

hist(w,50)

// 单位矩阵

I = eye(4)

//帮助指令

help eye

help help

移动数据

A = [1 2; 3 4; 5 6]

// 矩阵维度

size(A)

sz = size(A)

size(sz)

//A矩阵第1维度的大小

size(A,1)

//A矩阵第2维度的大小

size(A,2)

// 矩阵两维度的最大值

v = [1 2 3 4]

length(v)

length(A)

导入数据

// 显示当前目录

pwd

cd ''

ls

// 导入数据

load house.dat

load price.dat

// 显示当前在内存中的变量

who

// 显示更详细的变量信息

whos

// 显示house.dat中的数据集

house

size(house)

size(price)

// 删除某个变量

clear price

// 清理工作空间

clear

// 赋值变量

v = priceY(1:5)

导出数据

// 存入硬盘

save hello.mat v;

save hello.txt v -ascii;

操作数据

索引操作

A = [1 2; 3 4; 5 6;]

// 第3行第2列的元素

A(3,2)

// 第2行所有元素

A(2,:)

// 第1列所欲元素

A(:,1)

// 第1行和第3行的所有元素

A([1 3],:)

// 将A的第2列赋值成[10;11;12;]

A(:,2) = [10;11;12;]

// 添加第3列

A = [A, [100; 101; 102;]

// 把A中所有元素放入一个单独的列向量

A(:)

// 结合矩阵

A = [1 2; 3 4; 5 6;]

B = [11 12 13; 14 15 16;]

C = [A B]

C = [A ; B]

计算数据

A = [1 2; 3 4;5 6]

B = [11 12;13 14; 15 16;]

C = [1 1;2 2;]

A * C

// 对应元素相乘 .表示元素的运算

A.* B

A. ^ 2

v = [1;2;3;]

1 ./v

1 ./A

// 以e为底,以v中元素为指数的幂运算

exp(v)

// 求绝对值

abs(v)

// v的相反数

-v

// 向量每个元素都加1

v + ones(length(v),1)

v + 1

// 转置

A

A'

a = [1 15 2 0,5]

val = max(a)

[val, ind] = max(a)

// 每列的最大值

max(A)

a = [1 15 2 0.5]

a < 5

// 找出小于3的元素并返回索引

find(a < 3)

// 任意行列对角线中的元素加起来都等于相同的值

A = magic(3)

//r 行 c列

[r,c] = find(A >= 7)

// 求和函数

a

sum(a)

// 相乘函数

prod(a)

// 向下取整

floor(a)

//向上取整

ceil(a)

// A的逆矩阵

A = magic(3)

pinv(A)

数据绘制

t = [0; 0.01;0.98];

t

y1 = sin(2*pi*4*t);

plot(t,y1);

y2 = cos(2*pi*4*t);

plot(t,y2);

plot(t,y1);

hold on;

plot(t,y2,'r');

xlabel('time')

ylabel('value')

legend('sin','cos')

title('my plot')

print -dpng 'myplot.png'

help plot

close

//

figure(1): plot(t,y1);

figure(2): plot(t,y2);

subplot(1,2,1);

plot(t,y1);

subplot(1,2,2);

plot(t,y2);

//

A = magic(5)

imagesc(A)

imagesc(A),colorbar,colormap gray;

控制语句

for循环

v = zeros(10,1)

for i = 1:10.

v(i) = 2^i;

end;

while循环

v

while i <= 5.

v(i) = 100;

i = i + 1;

end;

while true.

v(i) = 999;

i = i + 1;

if i == 6.

break;

end;

end;

if条件语句

if v(1) == 1.

disp('The value is one');

elseif v(1) == 2.

disp('The value is two');

else

disp('The value is not one or two');

end;

函数

squareThisNumber(2)

[a,b] = squareAndCubeThisNumber(5)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值