TensorFlow的入门学习

阶段一
初步学习opencv库

#01、图片的展示
#1 引入opencv  2 API的使用   3  stop
import cv2
img1 = cv2.imread('image01.jpg',1)#read image  1、image'sname  2、color 	1:colourful 0:gray
img2 = cv2.imread('image01.jpg',0)#注意不要将后缀掉了
cv2.imshow('image01',img1)#1、name win   2、img
cv2.imshow('image02',img2)
cv2.waitKey(0)
#02、图片的写入
import cv2
img = cv2.imread('image01.jpg',1)
cv2.imwrite('image011.jpg',img)# 1、写入文件的名称  2、数据 为解析后image的源数据
#03、图像的质量_模块1
#对图片jpg,png的压缩,jpg图片质量压缩的范围0-100  
#jpg有损压缩   png无损压缩,不会改变图片的透明度
import cv2
img = cv2.imread('image01.jpg',1)
cv2.imwrite('imageTest.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,50])#JPG的参数范围为0-100
#03、图像的质量_模块2
# png无损压缩,不会改变图片的透明度
import cv2
img = cv2.imread('image01.jpg',1)
cv2.imwrite('imageTest.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])
#注意jpg和png的函数不同
#jpg 数字越小,压缩比越高,图片质量损失越厉害,压缩比0-100
#png 数字越高,压缩比越高,数值范围:0-9
#04、像素操作
import cv2
img = cv2.imread('image01.jpg',1)
(b,g,r)=img[100,100]
print(b,g,r)#b g r模式
#10 100  --- 110 100
for i in range (1,100):
    img[10+i,100] = (255,0,0)
cv2.imshow('image',img)
cv2.waitKey(0)#1000 ms 经过1秒后,程序将继续执行下去

阶段二
Tensorflow基础知识入门学习

# 01、tf常量变量
# opencv 基础到 tensorflow语法入门
# 学习方法  类比 语法 API 原理
'''所有的变量都要初始化才能用'''
# 在view --> Toggle Line Numbers 可以显示行标
import tensorflow as tf
data1 = tf.constant(2,dtype = tf.int32)#不能将2改成小数
data2 = tf.Variable(10,name = 'var')
    #Tensor("Const_1:0", shape=(), dtype=float32)
    #
print(data1)
print(data2)#不能使用这个print(var)
'''
sess = tf.Session()
print(sess.run(data1))
init = tf.global_variables_initializer()     #变量初始化
sess.run(init)
print(sess.run(data2))
sess.clse()   #关闭程序

# 本质 tf = tensor + 计算图
# tensor 数据
# op
# graphs数据操作
# session
'''
init = tf.global_variables_initializer()
sess = tf.Session()
with sess:            #sess使用完之后不用关闭,因为中间有变量
    sess.run(init)
#02、tf四则运算
#学习内容:加:add(),减:subtract(),乘:multiply(),除:divide()  里面的参数好像只能是一个
#其中好注意此处的乘法是:multiply(),后面还会学到矩阵的乘法:matmul()
import tensorflow as tf
data1 = tf.constant(6)
data2 = tf.Variable(2)
data3 = tf.constant(4)
dataAdd = tf.add(data1,data2)
dataCopy = tf.assign(data2,dataAdd)  #dataAdd --> data2
dataMul = tf.multiply(data1,data2)
dataSub = tf.subtract(data1,data2)
dataDiv = tf.divide(data1,data2)

init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(dataAdd))
    print(sess.run(dataMul))
    print(sess.run(dataSub))
    print(sess.run(dataDiv))
    
    print('sess.run(dataCopy)',sess.run(dataCopy))
    print('sess.run(dataCopy.eval())',dataCopy.eval())  #8 --->data2
    print('tf.get_default_session().run(dataCopy)',tf.get_default_session().run(dataCopy))
    
    print('end!')
#03、tf矩阵基础01 模块一
#placehold
#不要把tf.忘记,tf.Session()
import tensorflow as tf
data1 = tf.placeholder(tf.float32)
data2 = tf.placeholder(tf.float32)
dataAdd = tf.add(data1,data2)
with tf.Session() as sess:
    print(sess.run(dataAdd,feed_dict={data1:6,data2:2}))
    #1 dataAdd 2 data (feed_dict = {参数1:6,参数2:2})
print('endl!')
#03、tf矩阵基础01 模块二
#学习内容:矩阵的定义
# 类比学习 数组 M行N列[]   内部[]  [里面 列数据]  [] 中括号整体 行数
#出现的问题:1、导入库的时候库的名字打错了tensorflow   2、在输出的时候将中括号打成了括号,并且掉了逗号“,”
import tensorflow as tf
data1 = tf.constant([[6,6]])
data2 = tf.constant([[2],
                     [2]])
data3 = tf.constant([[3,3]])
data4 = tf.constant([[1,2],
                     [3,4],
                     [5,6]])

print(data4.shape)   #打印矩阵的维度
with tf.Session() as sess:
    print(sess.run(data4))  #打印整体
    print(sess.run(data4[0]))#打印某一行
    print(sess.run(data4[:,0]))#打印某一列
    print(sess.run(data4[0,1]))#打印某个值,第一行 第二个  下标都是从0开始   
#04、tf矩阵基础02
#学习内容:矩阵的运算  1、矩阵加法  2、矩阵的乘法  3、矩阵的类数据的乘法
import tensorflow as tf
data1 = tf.constant([[6,6]])
data2 = tf.constant([[2],
                    [2]])
data3 = tf.constant([[3,3]])
data4 = tf.constant([[1,2],
                    [3,4],
                    [5,6]])
matMul = tf.matmul(data1,data2)#矩阵乘法
matMul2 = tf.multiply(data1,data2)#普通乘法
matAdd = tf.add(data1,data3)
with tf.Session() as sess:
    print(sess.run(matMul))#1维 M=1 N2. 1x2(MK)  2x1(KN) = 1
    print(sess.run(matMul2))#1x2 2x1 =2x2 
    print(sess.run(matAdd))#1行2列
    print(sess.run([matMul,matAdd]))#打印多个变量
#05、tf矩阵基础03  模块一
#学习内容:
#      特殊矩阵:零矩阵,全一矩阵,矩阵的填充
#问题:1、不要忘记在两个中括号[],[]之间的逗号“,”
import tensorflow as tf
mat0 = tf.constant([[0,0,0],[0,0,0]])
mat1 = tf.zeros([2,3])#2x3 零矩阵
mat2 = tf.ones([4,3])#4x3 全一矩阵
mat3 = tf.fill([2,4],15)#2x4 矩阵填充 15

with tf.Session() as sess:
    print(sess.run(mat0))
    print(sess.run(mat1))
    print(sess.run(mat2))
    print(sess.run(mat3))
#05、tf矩阵基础03  模块二
#学习内容:
#      1、零矩阵的另外一种表述方式:zeros_like 类比还有ones_like,但只有这几个
#      2、随机矩阵  tf.random_uniform
import tensorflow as tf
mat1 = tf.constant([[2],[3],[4]])
mat2 = tf.zeros_like(mat1)
mat3 = tf.linspace(0.0,2.0,11)
mat4 = tf.ones_like(mat1)
mat5 = tf.random_uniform([2,3],-1,3)#随机矩阵  2x3 数值在-1~3之间
with tf.Session() as sess:
    print(sess.run(mat2))
    print(sess.run(mat3))
    print(sess.run(mat4))
    print(sess.run(mat5))
    
#06、tf模块Numpy的使用
#类比于数据库的使用 C U R D  增删改查  矩阵的增删改查
#在使用zeros 和noes时不能将中括号掉了
import numpy as np
data1 = np.array([1,2,3,4,5])
print(data1)
data2 = np.array([[1,2],
                  [3,4]])
print(data2)
#打印数组的维度
print(data1.shape,data2.shape)
#zero ones
print(np.zeros([2,3]),np.ones([2,2]))
# 改查 -->直接修改某个值
data2[1,0] = 5
print(data2)
#查看 -->直接print
print(data2[1,1])
#基本运算
data3 = np.ones([2,3])
print(data3*2)#对应相乘
print(data3/3)#对应相除
print(data3+2)#对应每个元素都加2
#矩阵的加法和乘法
data4 = np.array([[1,2,3],[4,5,6]])
print(data3+data4)
print(data3*data4)#对应元素相乘

结果如图所示。
TensorFlow的入门学习_第1张图片

# 07、tf模块matplotlib的使用
# matplotlab 可以绘制  折线  饼状  柱状图  
# 饼状用得少
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8,9])
y = np.array([3,5,2,6,9,6,1,10,15])
# 折线
#plt.plot(x,y,'r')# 1 x  2 y  3 color
plt.plot(x,y,'r',lw=1)# 4 the width of line 
# 柱状
y = np.array([13,10,9,12,4,9,11,12,14])
plt.bar(x,y,0.5,alpha = 0.3,color = 'y')# 1 x  2 y  3 柱状图宽度所占比0-1  4 透明度(png)  5 color
plt.show()

结果如图所示。
TensorFlow的入门学习_第2张图片

感谢各位朋友好友的支持。
记录点滴成长!

你可能感兴趣的:(人工智能——机器视觉及图像识别,Tensor,flow基础)