⑴ ubuntu上tensorflow怎么编程
启用GPU支持:
需要设置LD_LIBRARY_PATH 和 CUDA_HOME环境变量。
假定CUDA安装目录为usr/local/cuda,将下面两个命令添加到~/.bash_profile文件中: export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda
训练自己的第一个TensorFlow神经网络:
从源代码的根路径执行:
$cd tensorflow/models/image/mnist
$python convolutional.py
Succesfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Succesfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Succesfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Succesfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
...........
...........
能正常运行说明安装成功
⑵ 如何使用TensorFlow构建,训练和改进循环神经网络
基本使用使用TensorFlow,你必须明白TensorFlow:使用图(graph)来表示计算任务.在被称之为会话(Session)的上下文(context)中执行图.使用tensor表示数据.通过变量(Variable)维护状态.使用feed和fetch可以为任意的操作(arbitraryoperation)赋值或者从其中获取数据.综述TensorFlow是一个编程系统,使用图来表示计算任务.图中的节点被称之为op(operation的缩写).一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor.每个Tensor是一个类型化的多维数组.例如,你可以将一小组图像集表示为一个四维浮点数数组,这四个维度分别是[batch,height,width,channels].一个TensorFlow图描述了计算的过程.为了进行计算,图必须在会话里被启动.会话将图的op分发到诸如CPU或GPU之类的设备上,同时提供执行op的方法.这些方法执行后,将产生的tensor返回.在Python语言中,返回的tensor是numpyndarray对象;在C和C++语言中,返回的tensor是tensorflow::Tensor实例.
⑶ tensorflow怎么构建深度学习网络
构建路线:对于任何一个深度学习库,如mxnet、tensorflow、theano、caffe等,基本上都采用同样的一个学习流程,大体流程如下:
(1)训练阶段:数据打包-》网络构建、训练-》模型保存-》可视化查看损失函数、验证精度
(2)测试阶段:模型加载-》测试图片读取-》预测显示结果
(3)移植阶段:量化、压缩加速-》微调-》C++移植打包-》上线
⑷ 如何用Tensorflow 快速搭建神经网络
在MNIST数据集上,搭建一个简单神经网络结构,一个包含ReLU单元的非线性化处理的两层神经网络。在训练神经网络的时候,使用带指数衰减的学习率设置、使用正则化来避免过拟合、使用滑动平均模型来使得最终的模型更加健壮。
程序将计算神经网络前向传播的部分单独定义一个函数inference,训练部分定义一个train函数,再定义一个主函数main。
二、分析与改进设计
1. 程序分析改进
第一,计算前向传播的函数inference中需要将所有的变量以参数的形式传入函数,当神经网络结构变得更加复杂、参数更多的时候,程序的可读性将变得非常差。
第二,在程序退出时,训练好的模型就无法再利用,且大型神经网络的训练时间都比较长,在训练过程中需要每隔一段时间保存一次模型训练的中间结果,这样如果在训练过程中程序死机,死机前的最新的模型参数仍能保留,杜绝了时间和资源的浪费。
第三,将训练和测试分成两个独立的程序,将训练和测试都会用到的前向传播的过程抽象成单独的库函数。这样就保证了在训练和预测两个过程中所调用的前向传播计算程序是一致的。
2. 改进后程序设计
mnist_inference.py
该文件中定义了神经网络的前向传播过程,其中的多次用到的weights定义过程又单独定义成函数。
通过tf.get_variable函数来获取变量,在神经网络训练时创建这些变量,在测试时会通过保存的模型加载这些变量的取值,而且可以在变量加载时将滑动平均值重命名。所以可以直接通过同样的名字在训练时使用变量自身,在测试时使用变量的滑动平均值。
mnist_train.py
该程序给出了神经网络的完整训练过程。
mnist_eval.py
在滑动平均模型上做测试。
通过tf.train.get_checkpoint_state(mnist_train.MODEL_SAVE_PATH)获取最新模型的文件名,实际是获取checkpoint文件的所有内容。
⑸ 如何使用tensorflow实现卷积神经网络
没有卷积神经网络的说法,只有卷积核的说法。
电脑图像处理的真正价值在于:一旦图像存储在电脑上,就可以对图像进行各种有效的处理。如减小像素的颜色值,可以解决曝光过度的问题,模糊的图像也可以进行锐化处理,清晰的图像可以使用模糊处理模拟摄像机滤色镜产生的柔和效果。
用Photoshop等图像处理,施展的魔法几乎是无止境的。四种基本图像处理效果是模糊、锐化、浮雕和水彩。?这些效果是不难实现的,它们的奥妙部分是一个称为卷积核的小矩阵。这个3*3的核含有九个系数。为了变换图像中的一个像素,首先用卷积核中心的系数乘以这个像素值,再用卷积核中其它八个系数分别乘以像素周围的八个像素,最后把这九个乘积相加,结果作为这个像素的值。对图像中的每个像素都重复这一过程,对图像进行了过滤。采用不同的卷积核,就可以得到不同的处理效果。?用PhotoshopCS6,可以很方便地对图像进行处理。
模糊处理——模糊的卷积核由一组系数构成,每个系数都小于1,但它们的和恰好等于1,每个像素都吸收了周围像素的颜色,每个像素的颜色分散给了它周围的像素,最后得到的图像中,一些刺目的边缘变得柔和。
锐化卷积核中心的系数大于1,周围八个系数和的绝对值比中间系数小1,这将扩大一个像素与之周围像素颜色之间的差异,最后得到的图像比原来的图像更清晰。
浮雕卷积核中的系数累加和等于零,背景像素的值为零,非背景像素的值为非零值。照片上的图案好像金属表面的浮雕一样,轮廓似乎凸出于其表面。
要进行水彩处理,首先要对图像中的色彩进行平滑处理,把每个像素的颜色值和它周围的二十四个相邻的像素颜色值放在一个表中,然后由小到大排序,把表中间的一个颜色值作为这个像素的颜色值。然后用锐化卷积核对图像中的每个像素进行处理,以使得轮廓更加突出,最后得到的图像很像一幅水彩画。
我们把一些图像处理技术结合起来使用,就能产生一些不常见的光学效果,例如光晕等等。
希望我能帮助你解疑释惑。
⑹ 如何基于caffe或tensorflow来建立自己的网络模型
Caffe是目前深度学习比较优秀好用的一个开源库,采样c++和CUDA实现,具有速度快,模型定义方便等优点。学习了几天过后,发现也有一个不方便的地方,就是在我的程序中调用Caffe做图像分类没有直接的接口。Caffe的数据层可以从数据库(支持leveldb...
⑺ 如何用 TensorFlow 实现生成式对抗网络
我们利用 TensorFlow 提供的 tf.train.AdamOptimizer 来控制学习速度。AdamOptimizer 通过使用动量(参数的移动平均数)来改善传统梯度下降,促进超参数动态调整。我们可以通过创建标签错误率的摘要标量来跟踪丢失和错误率:
# Create a placeholder for the summary statistics
with tf.name_scope("accuracy"):
# Compute the edit (Levenshtein) distance of the top path
distance =tf.edit_distance(tf.cast(self.decoded[0], tf.int32), self.targets)
# Compute the label error rate (accuracy)
self.ler =tf.rece_mean(distance, name='label_error_rate')
self.ler_placeholder =tf.placeholder(dtype=tf.float32, shape=[])
self.train_ler_op =tf.summary.scalar("train_label_error_rate", self.ler_placeholder)
self.dev_ler_op =tf.summary.scalar("validation_label_error_rate", self.ler_placeholder)
self.test_ler_op =tf.summary.scalar("test_label_error_rate", self.ler_placeholder)
如何改进 RNN
现在我们构建了一个简单的 LSTM RNN 网络,下一个问题是:如何继续改进它看幸运的是,在开源社区里,很多大公司都开源了自己的最新语音识别模型。在 2016 年 9 月,微软的论文《The Microsoft 2016 Conversational Speech Recognition System》展示了在 NIST 200 Switchboard 数据中单系统残差网络错误率 6.9% 的新方式。他们在卷积+循环神经网络上使用了几种不同的声学和语言模型。微软的团队和其他研究人员在过去 4 年中做出的主要改进包括:
在基于字符的 RNN 上使用语言模型
使用卷积神经网络(CNN)从音频中获取特征
使用多个 RNN 模型组合
值得注意的是,在过去几十年里传统语音识别模型获得的研究成果,在目前的深度学习语音识别模型中仍然扮演着自己的角色。
修改自: A Historical Perspective of Speech Recognition, Xuedong Huang, James Baker, Raj Reddy Communications of the ACM, Vol. 57 No. 1, Pages 94-103, 2014
训练你的第一个 RNN 模型
在本教程的 Github 里,作者提供了一些介绍以帮助读者在 TensorFlow 中使用 RNN 和 CTC 损失函数训练端到端语音识别系统。大部分事例数据来自 LibriVox。数据被分别存放于以下文件夹中:
Train: train-clean-100-wav (5 examples)
Test: test-clean-wav (2 examples)
Dev: dev-clean-wav (2 examples)
当训练这些示例数据时,你会很快注意到训练数据的词错率(WER)会产生过拟合,而在测试和开发集中词错率则有 85% 左右。词错率不是 100% 的原因在于每个字母有 29 种可能性(a-z、逗号、空格和空白),神经网络很快就能学会:
某些字符(e,a,空格,r,s,t)比其他的更常见
辅音-元音-辅音是英文的构词特征
MFCC 输入声音信号振幅特征的增加只与字母 a-z 有关
⑻ TensorFlow神经网络调优
训练集73%应该不够吧(笑)
先进一步拟合数据,让网络变得更深及更宽,具体可以的话128个节点可以继续加大,两层网络可以继续加深,以及选取更小的学习率(0.01或者1e-4,1太可怕了)
等到可以拟合数据了以后,再调节过拟合的问题,具体来说使用dropout、正则化参数、提前终止等
⑼ tensorflow 如何将两个网络融合
具体描述一下可以么。。。
比如,数据-〉网络1-〉网络2-〉输出,同时训练两个网络,还是说,两个网络都是训练好的,调用一下就好??