博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TessorFlow学习 之 序言
阅读量:4287 次
发布时间:2019-05-27

本文共 3616 字,大约阅读时间需要 12 分钟。


2017.10.23日记录:

  感觉平时自己学的还不错的,可是面试的时候才发现自己是个渣渣~~,真的感觉学习不能闭门造车!

  面试了图像处理算法工程师-->>

      1.精通哪门语言?C、C++、Py ?你会C++是吧?那你说static变量在什么时候被分配内存的?懵逼的干活。。。

      2.你会图像处理?那你用什么进行程序优化的?用几个线程对程序进行控制的?能写出来算法就不错了。。。

      3.你会深度学习吗?不会?现在不用深度学习做图像的貌似很少吧?

      4.三维重建、视频处理你会吗?GGG。。。

  总结: A.opencv会了只代表你是机械学生会了CAD。貌似这个大家都懂!

      B.可以利用opencv处理一些图像,或者自己加一点算法,只代表你会CAD画一些工程图。貌似这个出去要么找不到工作,要么就是一个绘图员!

      C.会三维重建,相当于机械会了UG、SW、ProE、CT,就是实体化一些东西给人感觉好多了。

      D.会深度学习,相当于机械会了造东西,这个时候我们可以做一些东西,比如:人脸识别系统、指纹识别。。。

      F.会优化程序,相当于会改进别人做的东西,就是模仿改造了,公司喜欢这样的人。

      G.会把理论变成现实,就是看别人论文用程序实现,这个了不得接私活完全成为大Boss了。

      H.自己创造算法,貌似只有数学系或者博士等的研究者吧?

  个人发展:

      第三步进行中。。。。。。


TessorFlow初探:

  图像处理用C++,深度学习用Python,至于以后QT的开发以后再说。

  安装不用说了--->>>

  来个小例子,当时我花了一个多星期弄懂原理和编写程序,现在几分钟:

1 import tensorflow as tf 2 import numpy as np 3  4 if __name__ == '__main__': 5     # 创建训练数据 6     x_data = np.random.rand(100).astype(np.float32) 7     y_data = x_data * 0.5 + 0.1 8     # 随机产生一个W,B的值 9     Weights = tf.Variable(tf.random_uniform([1], -10, 10))10     Baises = tf.Variable(tf.random_uniform([1], -10, 10))11 12     y = Weights * x_data + Baises13     #创建TF训练模型结构14     loss = tf.reduce_mean(tf.square(y - y_data))15     optimizer = tf.train.GradientDescentOptimizer(0.5)16     train = optimizer.minimize(loss)17     init = tf.initialize_all_variables()18     #初始化运行19     sess = tf.Session()20     sess.run(init)21     #实时查看22     for step in range(201):23         sess.run(train)24         if step%20 ==0:25             print(step,sess.run(Weights),sess.run(Baises))

训练一个y=kx+b的模型,K、B参数不断进行梯度更新,目标:k = 0.5, b = 0.1

看着训练的结果,实在是太棒了,但是我现在还不了解具体什么意思。。。后面继续努力学习


TF结构分析

刚拿到TF,买了两本书(网上最火的两本,你懂得),看了几个小时完全不懂,看了莫凡大神的代码之后感觉恍然大悟,程序员你不上代码光看书,逗我呢?

TF--->>>Session

  简单理解,一个执行的函数,相当于单片机上面的led.init()、Tick.init()....就是你程序写好之后,TF是不运行的,必须进过Session去运行才可以!

  例一:

1 import tensorflow as tf 2 import numpy as np 3  4 if __name__ == '__main__': 5     matrax1 = tf.constant([[1,2,3]])#相当于np.array(),建立一行三列数据 6     matrax2 = tf.constant([[1],[2],[3]]) 7     project = tf.matmul(matrax1,matrax2)#相乘 8     sess = tf.Session()#建立一个Session 9     result = sess.run(project)#用Session去运行matmul乘法10     print(result)11     sess.close()

  例二:

1 import tensorflow as tf 2 import numpy as np 3  4 if __name__ == '__main__': 5     matrax1 = tf.constant([[1,2,3]])#相当于np.array(),建立一行三列数据 6     matrax2 = tf.constant([[1],[2],[3]]) 7     project = tf.matmul(matrax1,matrax2)#相乘 8  9     with tf.Session() as sess:#相当于 sess = tf.Session(),读取结束之后自动关闭==sess.close()10         print(sess.run(project))

TF--->>>Variable

  变量,可以更新的数,相当于一个字典(比字典强大),使用的时候得初始化

1 import tensorflow as tf 2 import numpy as np 3  4 if __name__ == '__main__': 5  6     state = tf.Variable(0,name="count")     #定义一个变量值为0,名字是count,相当于字典 7     ones = tf.constant(1)                   #常量const 8     new_value = tf.add(state,ones)          #相加 9     up_data = tf.assign(state,new_value)    #更新state,不是C语言的指针不能直接更新,相当于等于号10     init = tf.global_variables_initializer()    #只要有Variable变量,就需要初始化11     with tf.Session() as sess:12         sess.run(init)13         for _ in range(3):14             print(sess.run(up_data))

TF--->>>placeholder

  可以输入的变量,相当于getchar()

  Tensorflow 如果想要从外部传入data, 那就需要用到 tf.placeholder(), 然后以这种形式传输数据 sess.run(***, feed_dict={input: **}).

1 import tensorflow as tf 2 import numpy as np 3  4 if __name__ == '__main__': 5  6     input1 = tf.placeholder(tf.float32) 7     input2 = tf.placeholder(tf.float32) 8     output = tf.multiply(input1,input2) 9     with tf.Session() as sess:10         print(sess.run(output,feed_dict={input1:[7.],input2:[10.]}))

参考莫凡大大的网站:https://morvanzhou.github.io/

转载地址:http://intgi.baihongyu.com/

你可能感兴趣的文章
Java面试题汇总---升级版(附答案)
查看>>
分布式文件系统之FastDFS文件服务器原理及搭建
查看>>
linux系统中安装mysql详解
查看>>
Java开发者应该养成的良好习惯
查看>>
微信小程序支付+Java后台实现(完整版)
查看>>
Spring Boot实现分布式微服务开发实战系列(一)
查看>>
Spring Boot实现分布式微服务电商项目开发实战系列(二)
查看>>
SpringBoot+Dubbo实现分布式微服务开发实战系列(三)
查看>>
Spring Boot实现分布式微服务开发实战系列 -- api接口安全
查看>>
Spring Boot实现分布式微服务开发实战系列 -- AOP切面实现及防SQL注入
查看>>
基于Zookeeper的Curator分布式锁实现
查看>>
来谈谈 Java 反射机制,动态代理是基于什么原理?
查看>>
JVM 内存模型
查看>>
SpringBoot Bean
查看>>
一起探索ThreadLock吧
查看>>
Redis 原理(一):线程IO模型
查看>>
iOS之---cocoaPods的使用详解------
查看>>
iOS之CALayer的使用和position和anchorPoint
查看>>
iOS 网络通信原理和socke通信原理/OSI七层模型
查看>>
iOS即时通信之XMPP框架的使用及原理简介
查看>>