如何翻转图片

方法一: Numpy

import numpy as np
image_flipped_lr = np.fliplr(image) #水平翻转
image_flipped_ud = np.flipud(image) #上下翻转

参考资料:numpy.fliplr numpy.flipud

方法二: OpenCV

image_flipped = cv2.flip(image,1)

cv2.flip(src, flipCode[, dst]) → dst

参考资料:OpenCV

PS:设置 plt.imshow图片大小:

plt.figure(figsize=(15,5)) #设置图片显示大小
plt.subplot(1,2,1)
plt.imshow(image)
plt.subplot(1,2,2)
plt.imshow(image_flipped)

TypeError: __init__() missing 1 required positional argument: ‘nb_col’ 解决办法

当我第一次使用keras出现了:
TypeError: __init__() missing 1 required positional argument: ‘nb_col’ 的错误

经过搜索,发现原来是使用了旧版本的Keras,可以使用print(keras.__version__)查看版本号。

解决办法:
在conda下升级Keras:

conda install keras  

年中总结

这一篇是继续上一篇《六月》。没办法,六月的最后一个星期太忙了。先是回了学校考试,然后报名的udacity自动驾驶课程,项目1提交时间又很紧。于是就漏了写这一篇。趁现在有点感受,坐下来,写点东西。


柳暗花明

晚餐的时候在食堂遇到杨师兄。感觉自从我的工卡下来后,就很少联系了。难得在食堂遇到他,和他聊了好久,还跟他一起去村里买点水果,一路上聊了好多事。

我告诉他,我不喜欢这里做的工作。因为这里做的工作和我以前的工作差太多了,最主要还没有半点兴趣。这让我很难受,很煎熬。但是我又想要一份实习证明。师兄实在的告诉我,如果真的不喜欢,想走就要早走,不要为了一个证明在这里浪费时间。“因为你不可能在这做了一年,一年以后你又要换方向,到时候你都研二了。你得为你未来的规划考虑。”

什么叫醍醐灌醒,这句话真的是点醒我了。我不能在纠结于一纸证明。归根结底,自己还是存在官本位的思想,还是为了满足自己的虚荣心。毕竟是中科院的实习证明,听上去就虚荣心爆棚了。其实都是骗人的。所以不要再纠结实习证明了。

现在有种茅塞顿开的感觉。这几个礼拜的烦恼似乎找到了思路。我不能为了这一实习证明,浪费我一年的时间。现在我对这份实习工作是这么规划的:现在先不想那么多了。抓紧时间,看能不能在3个月内有点思路。因为这礼拜刚做了数据集的处理,接下去是什么情况还很难说。如果接下去的3个月还是像前两个礼拜什么实质事都没做的话,那就得考虑尽快离职了。给自己定个期限,最多就9个月。如果到时候还是现在这种焦虑的心态,那一定要果断走人了。当然现在在这里也不是为了混日子,而是观望项目能不能让自己满意,让自己喜欢。


总结

总结过去6个月的生活和学习。上一次做计划是在这里《最近好忙》

这半年我做了:

  • 参加了研究生电子竞赛。做了FPGA的深度学习实现项目。这个项目让我学到了很多,甚至我能来深圳这里实习,就是靠着这个项目的;甚至还有老师赞赏这个项目。也因为这个项目,认识了教授,并且他十分认可我的能力和我的所做的工作。正好今天赛区结果出来了,只有个三等奖安慰。哈哈~这也让我认识到了,这个项目背后的思想,不是普通人能做的。而我要做的,是大众能做的、是随大流的。随大流对我来说风险更低,以后也好找工作些。FPGA做了整整一学年,现在算是正式放弃了。既然FPGA放弃了,那立体视觉的FPGA实现,那自然而然的也是放弃了。
  • Udacity的DLND顺利拿下了!毕业了,这门课让我快速的入门了深度学习。虽然不是特别精,但帮助特别大。如果没有这门课,我可能还要绕更多的弯路、浪费更多的时间。也正式这门课,指明了我未来的大方向。

下半年我的计划:

  • 完成Udacity自动驾驶第一二学期课程。
  • 在这边好好干!弄出点头绪来!

6月

太懒了,快要一个月什么都没写了。眼看着再不写6月可能就要过来。于是趁着现在没什么事,逼着自己写点东西。其实心里毫无感想,虽然最近有很多事可以写。

深圳我来了

提前两天跟老爸老妈来深圳游玩了一下。先前也没有做什么准备和计划,于是到了深圳几乎就是随便走走看看。游了世界之窗,感觉还不错。但是这两天实在是太热了。在世界之窗快要中暑了都~以至于下午老爸就玩不动了,这不像他的风格。星期天晚上(11号)我们就在酒店附近逛了下,就像福田当地的土著一样,悠闲地散散步。

快乐的时光总是过得很快。这一次深圳之行也是老妈第一次出省,第一次坐地铁。

分别

这天是12号,星期一。其实我本来不想他们送我来到门口的,我觉得影响不好。可是昨天下午老爸玩不动,没有提前带他们过来看看以满足他们的心愿,自己心里有点过意不去。我知道他们很想看看我工作的地方,毕竟听上去确实很高大上(SIAT)。昨晚我跟他们说不要跟我过来,他们说好。我可以听出他们的失落,我也能感觉到老妈在看我。可是我还是不想他们跟我来,原因还是担心被别人看了,影响不好。我原计划我等到快中午的时候,送他们到深圳北站坐车,我再自己转地铁来报道。可是老爸说我要早点出发,他们在酒店呆到快中午的时候再自己去北站。

于是我妥协了,我不舍得了。我说道“要不明早,早点出发,一起去吧~”。因为我不想我走后,他们自己留在酒店等时间。我宁愿他们自己去逛逛,这样我心里也好受些。

写到这里,我渐渐的有了感情了。心中有股滋味~

于是今天早上我们一起退了房,一起前往单位。地铁比想象的快。这两天太热了,我们到了以后,直接坐上三轮黑摩的直奔大门。到了以后,我们没有再停留。我告诉老爸不要错过动车了,问道“懂得坐地铁吧?方向不要弄错了。”我忘了还说了写什么,但是不多就几句而已。

“好的,我们这里自己逛一下”。将要转身走的时候,我看着老妈的眼神。至今忘不了,我和她掌对掌挥了下手。就这样提着包,转头就走了。我没有回头,现在想想我都能哭出来的。直到我走进保安亭后,我才想到要看看他们走了吗,可是被一堵墙堵住了,什么也看不到了。

过后我才想起来我忘了把零钱给他们了。

第一天

这一天我来不及感到离别的悲伤。取而代之的是不知所措和恐惧。到了老板的办公室。老板挺年轻的,和他聊了一下,就去就去办理入职手续了。办完之后,老板说我还没有餐卡,中午就和他吃吧。老板人挺好的~感觉很温和~

下午就比较尴尬了~独自一人从中午12点坐在咖啡厅里等宿舍单下来。在咖啡厅里,听着一些人在谈创业,一些人在聊科研,我感觉到这里平静却又充满的生机。大概坐到3点半左右,我真的不知道要干嘛,不知道接下去要怎么办。于是我想到了师兄。他是我们学校研二师兄,同系,老凌的学生。

他一听说我来了,马上就来找我。坐下来以后,问我东西买好了吗?“没有,那走,我带你去买”。这一瞬间我真的感到一股很强的温暖,我很想哭~路上他说“我见到你就像见到自己家人一样,很激动”。我也很激动。买完以后,为了不影响他的工作,我让他先回去了。走时,留了电话,他说晚上他请我一顿。这天晚上,他请了我院里最贵的食堂,3道菜多到我们两个吃不完。剩了有点多,他说太浪费了,于是硬是挤下肚子。师兄我想嫁给你~

接下去的日子

这周是来的第二周。这两周里的事,我准备下次再说~因为字数已经1300字了。

 

 

 

Socket编程:解决发送与接收数据不全

这个问题是在上个月在做的项目中遇到的问题。项目采用分布式计算,通过网线传输数据。然而却发现用Socket接收和发送数据会出现不全的问题。由于是第一次使用Socket,因此这个问题还是费了点时间去解决。现在把它整理下。


客户端
原来的编程方案:(错误)

//创建套接字
int sock = socket(AF_INET, SOCK_STREAM, 0);
//向服务器(特定的IP和端口)发起请求
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));  //每个字节都用0填充
serv_addr.sin_family = AF_INET;  //使用IPv4地址
serv_addr.sin_addr.s_addr = inet_addr("169.254.48.205");  //具体的IP地址
serv_addr.sin_port = htons(1234);  //端口
connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
//向服务器发送数据
printf("Sending...\n");
write(sock, (char*)conv_ouput, sizeof(float) * 25088);
printf("Send Successful\n");
//关闭套接字
close(sock);

这里有个问题,即是发送端不能保证一次性全部发完数据。因此必须确保发送到能够发全数据。

修改后的编程方案:(正确)

int sock = socket(AF_INET, SOCK_STREAM, 0);
//向服务器(特定的IP和端口)发起请求
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));  //每个字节都用0填充
serv_addr.sin_family = AF_INET;  //使用IPv4地址
serv_addr.sin_addr.s_addr = inet_addr("169.254.48.205");  //具体的IP地址
serv_addr.sin_port = htons(1234);  //端口
connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
//向服务器发送数据
printf("Sending...\n");
int pos = 0;
while(pos < 25088*sizeof(float))
{
	int send_num = send(sock,(char*)conv_ouput+pos, sizeof(float) * 25088, 0);
	if(send_num<=0)
	{
		break;
		printf("send error\n");
	}
	pos += send_num;
}
printf("send num = %d\n",pos);
printf("Send Successful\n");
//关闭套接字
close(sock);

继续阅读

中科院offer!!!

我从来也没有想到我能去中科院实习。周二我在实习僧上看到中科院在招聘实习,于是抱着试试的态度发了简历,没想到第二天就电话面试,面试还很顺利。也就问我现在在做的项目,最后竟然直接说:”那我给你发offer吧~“。真的是把我高兴坏了~真的是高兴坏了~高兴得我把正在睡午觉的舍友摇醒~跟他分享喜悦。第一时间告诉了老爸,姐姐。这两天渐渐平静下来了。

终于要出远门了!从高考后就一心想着考出省,去外面看看。然而现实是在省内选个一本院校容易,在省外选好学校就有可能上不了。于是大学继续省内读书,其实是市内读书。接着就是考研。也是选择离家一千公里的学校,不过最后也是没成。不过我总是能接受现实,于是又留在了市内读研。

现在终于有机会了。但现在的我,就好像一个在浅水区游惯的人,突然到海里去游泳一样。心里有一种巨大的压力感,是对陌生水域的恐惧。

不过人生就是这样,一步一步的往前迈。

Conda 修改源 快速下载

自言自语:趁着现在在训练网络,在4月的最后一天,发表一篇文章。这篇很早之前就已经整理好了,只是迟迟未发表。最近发现当把神经网络移植到FPGA上时,速度居然没有GPU快。也是大跌眼镜了。本来认为可以拿奖的项目,突然又觉得希望渺茫~但项目做到这个地步,只能硬着头皮继续优化下去。(请忽略)


其实很简单,但是也没网上的教程那么简单。在实际中,仅通过命令行修改,并不一定能完全用修改后的源下载,还需要去修改配置文件。

首先设置命令:

conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda

config –set show_channel_urls yes

然后:需要修改conda的配置文件。删掉-default选项。

conda info -a 查看.condarc文件位置 修改

修改后,下载速度杠杠的!

参考资料:

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/