TensorFlow安好后尝试的第一个案例

本文深入浅出地解析了逆概率概念,并通过一个具体的线性方程求解实例,展示了如何利用TensorFlow进行参数估计,揭示了机器学习中逆概率问题的解决思路。
部署运行你感兴趣的模型镜像

tensorflow能干啥????

什么是逆概率

我们肯定知道正概率,举个例子就是,箱子里有5个黑球5个白球,那你随机拿到黑球和白球的概率都是50%,那现在我不知道箱子里有多少个黑球白球,那我通过不断的拿球应该如何确定箱子里有多少个黑球白球呢,这就是出名的逆概率
其实机器学习很多时候也就是逆概率的问题,我有大量现实例子的情况下,让机器从这些例子中找到共同的特征,例如给一万张猫的图片给机器学习,然后找到共同的特征(两只耳朵,四只脚,有胡须,有毛,有尾巴等特征)
根据逆概率的概念我们再举个其他场景

y=Ax+B(A、B是常量),这是一条非常简单的数学方程式,有小学基础的人应该都知道。
我现在有很多的x和y值,所以问题就是如何通过这些x和y值来得到A和B的值?
参考:https://blog.youkuaiyun.com/DilemmaVF/article/details/66476862 

 

 

自建一个python文件,然后实验一下:

 

#导入依赖库
import numpy as np #这是Python的一种开源的数值计算扩展,非常强大
import tensorflow as tf  #导入tensorflow 

##构造数据##
x_data=np.random.rand(100).astype(np.float32) #随机生成100个类型为float32的值
y_data=x_data*0.1+0.3  #定义方程式y=x_data*A+B
##-------##

##建立TensorFlow神经计算结构##
weight=tf.Variable(tf.random_uniform([1],-1.0,1.0)) 
biases=tf.Variable(tf.zeros([1]))     
y=weight*x_data+biases
##-------##


loss=tf.reduce_mean(tf.square(y-y_data))  #判断与正确值的差距
optimizer=tf.train.GradientDescentOptimizer(0.5) #根据差距进行反向传播修正参数
train=optimizer.minimize(loss) #建立训练器

init=tf.initialize_all_variables() #初始化TensorFlow训练结构
sess=tf.Session()  #建立TensorFlow训练会话
sess.run(init)     #将训练结构装载到会话中

for  step in range(400): #循环训练400次
     sess.run(train)  #使用训练器根据训练结构进行训练
     if  step%20==0:  #每20次打印一次训练结果
        print(step,sess.run(weight),sess.run(biases)) #训练次数,A值,B值

 

输出:

ç»æ

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.youkuaiyun.com/course/detail/29666 2025/07/07: 由于该视频在2019年制作,当时py3.7;现在py3.13 由于pyreadline冲突rshell已不能用;如果仍要使用rshell请安装py3.12并用我修改的rshell: https://github.com/gamefunc/rshell/releases micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  
太好了!你已经成功安装了 `face_recognition`,这是一个基于 dlib 的高级人脸处理库,使用它可以让代码更简洁、稳定且易于理解。 --- ## ✅ 你现在可以做什么? `face_recognition` 支持以下功能: 1. **人脸检测(定位)** 2. **68 个关键点识别(眼睛、鼻子、嘴巴等)** 3. **人脸识别与比对(判断是否同一人)** 4. **人脸编码生成(128D 向量)** --- ## 🎯 示例:完整的人脸关键点检测 + 可视化 ```python import face_recognition from PIL import Image, ImageDraw import matplotlib.pyplot as plt # 1. 加载图像 image = face_recognition.load_image_file("1.jpeg") # 自动用 PIL 打开并转为 RGB # 2. 检测所有人脸位置 face_locations = face_recognition.face_locations(image) print(f"✅ 检测到 {len(face_locations)} 张人脸") # 3. 提取所有人脸的关键点(包括 eyes, nose, mouth 等) face_landmarks_list = face_recognition.face_landmarks(image) print(f"📌 关键点字段: {list(face_landmarks_list[0].keys())}") # 4. 可视化结果 plt.figure(figsize=(10, 8)) plt.imshow(image) for face_landmarks in face_landmarks_list: # 遍历每个面部特征 for facial_feature in face_landmarks.keys(): # 获取该特征的所有点 (x, y) points = face_landmarks[facial_feature] xs = [p[0] for p in points] ys = [p[1] for p in points] plt.plot(xs, ys, &#39;o-&#39;, markersize=2, linewidth=1.5, label=facial_feature) # 去重图例(避免重复显示相同标签) handles, labels = plt.gca().get_legend_handles_labels() by_label = dict(zip(labels, handles)) plt.legend(by_label.values(), by_label.keys(), loc=&#39;upper right&#39;, fontsize=&#39;small&#39;) plt.title("68 个人脸关键点检测结果") plt.axis(&#39;off&#39;) plt.tight_layout() plt.show() ``` --- ### 🔍 输出说明 - `face_landmarks` 是一个列表,每张脸是一个字典: ```python { &#39;chin&#39;: [(x1,y1), ..., (x17,y17)], &#39;left_eyebrow&#39;: [...], &#39;right_eyebrow&#39;: [...], &#39;nose_bridge&#39;: [...], &#39;nose_tip&#39;: [...], &#39;left_eye&#39;: [...], &#39;right_eye&#39;: [...], &#39;top_lip&#39;: [...], &#39;bottom_lip&#39;: [...] } ``` 你可以单独提取某一部分,比如只画眼睛: ```python left_eye = face_landmarks[&#39;left_eye&#39;] right_eye = face_landmarks[&#39;right_eye&#39;] ``` --- ## 💡 进阶技巧:保存关键点为 JSON 或 CSV ### 示例:导出第一个检测到的人脸关键点为 JSON ```python import json # 导出第一张脸的关键点 first_face = face_landmarks_list[0] # 转成可序列化的格式(tuple → list) serializable_landmarks = {k: [[int(x), int(y)] for x, y in v] for k, v in first_face.items()} # 保存为文件 with open("landmarks.json", "w", encoding="utf-8") as f: json.dump(serializable_landmarks, f, indent=2) print("💾 关键点已保存为 landmarks.json") ``` --- ## ✅ 常见问题排查 | 问题 | 解决方法 | |------|----------| | `No module named &#39;dlib&#39;` | 虽然装了 `face_recognition`,但 `dlib` 没装好 → 用 `conda install -c conda-forge dlib` | | 图像太大导致检测慢? | 先缩放再检测:<br>`small_image = image[::2, ::2]`(降采样一半) | | 多张人脸怎么处理? | `face_landmarks_list` 是列表,遍历即可 | | 如何判断正脸/侧脸? | 计算左右眼距离 vs 鼻子到耳朵的距离比例 | --- ## ✅ 推荐后续学习方向 ### 1. 人脸识别对比(判断两张脸是不是同一个人) ```python # 编码人脸 encoding_1 = face_recognition.face_encodings(face_image_1)[0] encoding_2 = face_recognition.face_encodings(face_image_2)[0] # 比较相似度 results = face_recognition.compare_faces([encoding_1], encoding_2) print("是否匹配:", results[0]) ``` ### 2. 实时摄像头识别人脸(配合 OpenCV) ```bash pip install opencv-python ``` 然后调用摄像头逐帧检测。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值