【Fierceking】学习笔记

人工智能
机器学习

#1

#Explaining How a Deep Neural Network Trained with End-to-End Learning Steers a Car

Fig 1: PilotNet Architecture

Fig 2: High-level view of the data collection system.

Fig 3: Training the neural network.

Fig 4: The trained network is used to generate steering commands from a single front-facing center camera.

Fig 5: Our system highlights salient objects detected by the PilotNet deep neural network.

End to End Learning for Self-Driving Cars

Explaining How a Deep Neural Network Trained with End-to-End Learning Steers a Car


#2

非常赞,加油,期待更多精彩分享!


#3

有详细的论文解读吗?:slight_smile:


#4

是要翻译么?:grinning: 工作量有点儿大啊! 核心就是用单张图片决定方向盘的角度


#5

#收集了一些关于如何创建和使用TFRecords的网页

TFRecord files 曾经在官方文档里被称作“Standard TensorFlow format”

在分布式计算中,使用TFRecord + Dataset相比读取小文件可以大大提高IO性能,另外以前的queue_runner方式正在被Dataset API 取代。

###Using the Dataset API

The Dataset API is replacing queue_runner as the recommended API for building input pipelines. The API was added to contrib as part of TensorFlow 1.2 and will move to core in the near future. This ResNet example (arXiv:1512.03385) training CIFAR-10 illustrates the use of the Dataset API along with tf.estimator.Estimator. The Dataset API utilizes C++ multi-threading and has a much lower overhead than the Python-based queue_runner that is limited by Python’s multi-threading performance.

While feeding data using a feed_dict offers a high level of flexibility, in most instances using feed_dict does not scale optimally. However, in instances where only a single GPU is being used the difference can be negligible. Using the Dataset API is still strongly recommended.

###Use large files Reading large numbers of small files significantly impacts I/O performance. One approach to get maximum I/O throughput is to preprocess input data into larger (~100MB) TFRecord files. For smaller data sets (200MB-1GB), the best approach is often to load the entire data set into memory.

以上摘自:Tensorflow > Develop > Performance > Performance Guide

这个代码(generate_cifar10_tfrecords.py)是tensorflow官方转换 CIFAR-10 data set 到 TFRecords 范例。

这两个博客,是Tensorflow contributor “ajschumacher” 介绍TFRecord基础的文章: TFRecords for Humans by Aaron Images and TFRecords by Aaron

还有一些其他的类似教程: How to write into and read from a TFRecords file in TensorFlow by Machine Learning Guru Tfrecords Guide by Daniil


#6

是要翻译么?:grinning: 工作量有点儿大啊! 核心就是用单张图片决定方向盘的角度


#7

总结的非常赞~,后面同学参考学习


#8

##如何保存Keras model到HDFS等分布式文件系统。


其他各种不支持保存到HDFS的函数也适用哦:sunglasses:

研究了两天,model.save() 不支持HDFS之类的分布式文件系统,搜遍了谷歌,Github,Stackoverflow,都没有找到满意的答案,也有人跟我有一样的问题,比如这个,甚至有人提议让Keras支持HDFS,比如这个

费劲巴拉的计算出来的模型难道就这样扔了?不!

今天突然有了灵感,居然如此简单!昨天在做图片RGB to YUV 的转换的时候,提到了将图片通过Python IO buffer 写入内存,但是不写入硬盘,然后可以快速的读取。我也想尝试把Keras model写入内存,model.save()只接收字符串参数,误打误撞用了python 底层的FileIO,但这实际上是写入硬盘的。然后我恍然大悟!即使是分布系统,也是有本地磁盘的,甚至能在本地磁盘装软件,我只需要把文件写入本地,然后再读出来写入HDFS就好了!具体实现如下,先用model.save(‘filename.h5’)把文件保存到本地,然后再用支持HDFS的方法写入HDFS,比如tensorflow.gfile,简直简单的不能再简单了:grinning:之后我在阿里云做了测试,效果棒棒的!:+1:给自己一个大大的赞!

model.save('model.h5')
with open('model.h5', 'rb') as f:
	f_content = f.read()
tf.gfile.FastGFile(HDFS_prefix + 'model1.h5', 'wb').write(f_content)

程序运行通过

没有报错

结果保存的好好:grin:

因为model.h5保存在server端了,所以oss bucket里没有,而只有model1.h5通过tf.gfile命令完好的保存在了oss bucket里。

今天真的好开心,解决了一个别人解答不了的问题,负基础的我,慢慢向建设性方向发展了!


#9

学习一下,这个保存文件到hdfs的技能很有用啊。


#10

学会这个对使用现在各大云公测中的免费深度学习平台有很大帮助。据我经验,门槛主要是在HDFS文件的访问上,另外就是每次启动耗时很长这个弱点。用13寸MacBook pro搞深度学习的伤不起啊。


#11

的确是如此,hdfs文件系统启动的慢,在笔记本上不太适合玩。


#12

##下载CUDA 8.0 和 cuDNN 6.0 安装GPU版的Tensorflow,需要先安装好NVIDIA的 CUDA 和 cuDNN。Tensorflow默认会调用CUDA 8.0,所以如果你装了9.0,会显示找不到CUDA 8的错误(具体错误提示是怎么写的不记得了)。所以新手们还是老老实实装8吧,这个官方文档有提到(本文对应Tensorflow 1.3,1.4版本,其他未测试):

那么如何才能下载CUDA 8.0呢?NVIDIA官网默认提供的是最新版下载。页面滚到下面,有个 Legcy Release :slight_smile: 打开这个页面 https://developer.nvidia.com/cuda-downloads 拉到下边,点击 Legcy Release 或者直接用这个链接: https://developer.nvidia.com/cuda-toolkit-archive 下载 CUDA Toolkit 8.0 GA2 (Feb 2017) 貌似大家都能琢磨出怎么装,我就不废话了

接下来下载cuDNN 6.0

用下面的链接,会提示你注册developer账户,照着弄就好了。下载6.0 for CUDA 8.0哦,别的我不保证好使。

https://developer.nvidia.com/rdp/cudnn-download


如果你打开后出现了这个页面!

###恭喜你,你被NVIDIA骗了 默默地关掉你的Chrome/firefox/Edge or whatever you’re using to browse this page,开始换浏览器吧,我的 Mac + Safari 能打开, 有人说 Win10 + IE (不是Edge,是Internet Explorer)能打开,具体在你那儿哪个浏览器好使,你就一个一个试吧!总有一款适合你呦~

如果试遍所有,还是不好使,就试试下面的链接。

还打不开?你去找能打开好基友的要下载地址吧,每个操作系统版本不一样。


总结

CUDA Toolkit 8.0 - Feb 2017 cuDNN Download (选 v6.0 for CUDA 8.0)


#13

老哥,以你深厚的功力知道用oss bucket 怎么读csv文件吗 用pandas可以读吗