本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM
有时候,我们需要在程序中添加文字转语音的功能,即通过某个程序或API,把输入的文字朗读出来,也就是通常所说的 text-to-speech(简写为TTS)。我尝试了一个简单的方案——使用Espeak来完成这个任务,在这里记录下来。
本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM
有时候,我们需要在程序中添加文字转语音的功能,即通过某个程序或API,把输入的文字朗读出来,也就是通常所说的 text-to-speech(简写为TTS)。我尝试了一个简单的方案——使用Espeak来完成这个任务,在这里记录下来。
本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM
在上一篇文章中,我尝试了加快TensorFlow预测速度的一个方法——模型“预热”,实验证明它非常有效,但那仍然没有解决一个问题:每次运行程序,都要加载一次模型,然后预热N次,这个过程非常耗时,因此减少这部分时间也是非常关键的。把TensorFlow做成一个常驻内存的服务就可以解决这个问题。
解决这个问题的正确姿势是:TensorFlow已经提供了一个叫作 TensorFlow Serving 的library来实现这个需求。但麻烦的是,在树莓派上编译TensorFlow Serving会遇到很多问题,所以,在没有人搞出在树莓派上一键安装的Python wheel包之前,还是算了吧...
因此,下面我用一个很挫的办法来实现一个简陋的TensorFlow service。
本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM
深度学习(Deep Learning)现在这么火,树莓派玩家们当然也不会放过,目前已经有很多树莓派项目都搭上了Deep Learning的车,纯粹出于“好玩”的目的,我在树莓派上也实验了一把,用TensorFlow来识别一张图片里的物体“是什么”。
最近入手了树莓派3代,从树莓派出世到现在(2016.04),总共买了共4片各型号的树莓派,算不上狂热的爱好者,但也算是个比较热心的用户了吧。
在此记录一些树莓派3代的使用笔记。
如果你在Github上有一个项目,为了能让这个项目可以在多台计算机上开发,需要把目标计算机的SSH key添加到你的Github账户中,否则你以SSH方式git clone时会提示无权限,例如你可以试试:
git clone git@github.com:codelast/raspberry-pi.git
会输出类似于这样的错误信息:
Permission denied (publickey).
文章来源:http://www.codelast.com/
所以下一步就要在Github中添加SSH key,让你可以在目标计算机上进行开发以及代码提交。
其实Github上已经有完整的教程了,只不过我记性不好,每次都要去翻Github教程,所以特地写下来。
✔ 检查SSH key是否已经存在
检查文件 ~/.ssh/id_rsa.pub 是否存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步。
如果该文件存在,但你不想使用它的话,那么就按下面的做法另外生成一个文件也可以(例如 ~/.ssh/id_rsa_github.pub)。
文章来源:http://www.codelast.com/
✔ 生成一个新的SSH key
如果第1步中的SSH key不存在,则需要生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,your_email@example.com要修改成你的邮箱地址。
回车后输出如下:
… Read MoreGenerating public/private rsa key pair.
使用Java的ThreadPoolExecutor可以并发地执行一些任务,它的基本用法是:
(1)创建一个 ThreadPoolExecutor 对象
ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(workQueueSize));
最近,在使用Java的ThreadPoolExecutor来实现一个并发功能的时候,发现程序刚执行起来不久,就提示了错误:
OutOfMemoryError: unable to create new native thread
并且服务器立即陷入类似于“无响应”的状态,无法用Ctrl+C结束掉我的Java程序,按Ctrl+C的时候,命令行只是不断地打印出类似于下面的消息:
Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
本来用得好好的树莓派(Arch Linux ARM),没啥事随手打了一条系统更新的命令:
pacman -Syu
结果重启之后无法用ssh以root用户登录树莓派了,提示错误如下:
Permission denied, please try again
这分明就像是密码错误导致的嘛!