Teachable Machine模型之TensorFlow使用篇

前言: 使用在teachable machine训练的h5格式模型

tensorflow使用篇

1. 使用teachable machine训练模型

地址: 传送门, 需要梯子翻一下

训练后, 导出的时候可以选择三种类型
在这里插入图片描述

导出模型文件 converted_keras.zip (py版)
解压后得到
在这里插入图片描述

2. py项目中使用模型

根据你当时使用teachable machine的时间, 选择py项目中TensorFlow的版本

我现在使用的是必须是2.3.0版本及以上才行, 然后我直接升级到了2.10.0

如果版本不匹配会报错如下

ValueError: (‘Unrecognized keyword arguments:’, dict_keys([‘ragged’]))

解决的方法就是升级TensorFlow版本

pip install tensorflow==2.10.0 --upgrade

目录结构如下
在这里插入图片描述

第一种app.py, 判断项目本地的图片, 可以直接使用postman请求无参get, 可以得到卡类型

# -*- coding: utf-8 -*-
import flask as fk
from flask import jsonify, request
import tensorflow as tf
from PIL import Image
import numpy as npapp = fk.Flask(__name__)# 加载标签映射
class_label_map = {}
with open('labels.txt', 'r', encoding='utf-8') as f:for line in f.readlines():index, label = line.strip().split()class_label_map[int(index)] = labelprint(class_label_map)# 加载模型
global model
model = tf.keras.models.load_model('keras_model.h5')
print('模型加载成功')# 图片预处理方法
def preprocess_image(image_path):img = Image.open(image_path)# 调整大小、归一化等操作,具体取决于模型要求img_resized = img.resize((224, 224))img_array = np.array(img_resized) / 255.0  # 将像素值归一化到[0, 1]区间img_array = np.expand_dims(img_array, axis=0)  # 添加批量维度(batch size = 1)return img_array# 预测方法
def load_model():# 准备输入数据input_data = preprocess_image("danka.jpg")# input_data = preprocess_image("duolianka.jpg")# 预测predictions = model.predict(input_data)# 获取预测结果predicted_class_index = np.argmax(predictions[0])# 获取预测的类名predicted_class_name = class_label_map[predicted_class_index]print(f"Predicted class: {predicted_class_name}")return predicted_class_name# 测试预测
@app.route('/api/hello', methods=['GET'])
def get_data():return load_model()# 假设我们要提供一个获取用户信息的API
@app.route('/api/user/<int:user_id>', methods=['GET'])
def get_user_info(user_id):# 这里模拟从数据库或其他服务获取用户信息user_data = {'id': user_id, 'name': 'John Doe', 'email': 'john.doe@example.com'}# 假设用户不存在,返回404# 返回JSON格式的用户信息return jsonify(user_data)# 定义一个接收POST请求的路由,假设该接口用于创建新用户
@app.route('/api/users', methods=['POST'])
def create_user():# 从请求体中获取JSON格式的数据data = request.get_json()# 检查必要的字段是否存在if not all(key in data for key in ('username', 'email', 'password')):return jsonify({"error": "Missing required fields"}), 400# 这里仅做示例,实际开发中应将数据保存至数据库等new_user = {'username': data['username'],'email': data['email'],'password': data['password']}# 模拟用户创建成功resultMap = {"message": "User created successfully", "user": new_user}# 返回201状态码表示已创建资源return jsonify(resultMap), 201if __name__ == '__main__':app.run(host='0.0.0.0', port=5000, debug=True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

volta(轻松切换管理Node.js版本)

Node.js版本管理 Volta提供了一个简单直观的命令行界面&#xff0c;可以轻松地安装、卸载、更新和切换Node.js版本。 Volta 既可以全局使用&#xff0c;也可以在项目级别使用&#xff0c;可以为每个项目单独设置node版本&#xff0c;nvm不行。 下载安装Volta 参考&#xff1a; …

自建远程桌面服务器,控制免root安卓手机和pc

RustDesk是一个开源的远程桌面软件&#xff0c;它允许用户通过互联网在不同设备之间共享桌面和控制权限。这款软件以最少的配置提供了自托管和安全保障&#xff0c;是一个类似于TeamViewer的开源替代品​ (RustDesk)​。RustDesk支持在Windows、macOS、Linux、iOS、Android以及…

[数据概念]对原始公开数据赋权的思考

“ 对于原始、公开信息&#xff0c;要充分保障整个社会对该类信息资源的合理利用&#xff0c;以维护信息公平和促进更大范围的创新。。” 2022年12月&#xff0c;党中央、国务院发布《关于构建数据基础制度更好发挥数据要素作用的意见》&#xff08;以下称《数据二十条》&#…

互联网大厂ssp面经之路:计算机网络part2

什么是 HTTP 和 HTTPS&#xff1f;它们之间有什么区别&#xff1f; a. HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;安全超文本传输协议&#xff09;是用于在Web上传输数据的协议。它们之间的区别在于安全性和数据传输方式。 b. HTTP是一种不安全的协议&…

变分自编码器生成新的手写数字图像

变分自编码器&#xff08;Variational Autoencoder&#xff0c;VAE&#xff09;是一种生成模型&#xff0c;通常用于学习数据的潜在表示&#xff0c;并用于生成新的数据样本。它由两部分组成&#xff1a;编码器和解码器。 编码器&#xff08;Encoder&#xff09;&#xff1a;接…

用Echarts词云数据可视化热词表白​​

目录 1、使用前准备 2、准备工作 3、盒子搭建 4、整体展现 1、使用前准备 找到表白对象&#xff08;重中之重&#xff01;&#xff09;&#xff0c;不要一见钟情&#xff08;个人觉得&#xff1a;一见钟情属于见色起意&#xff01;&#xff09;&#xff0c;因为数据可视化需…

海外仓为何要做仓库管理系统?位像素海外仓系统的仓库管理功能有哪些?

在当今繁荣的跨境电商市场中&#xff0c;海外仓已经成为了许多电商企业的重要选择。但是&#xff0c;海外仓的成功与否并不仅仅取决于其位置和规模&#xff0c;同样重要的是其仓库管理系统的有效性。那么&#xff0c;海外仓为何要做仓库管理系统呢&#xff1f;让我们一起来探讨…

“成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能…

可视化大屏的应用(9):智慧旅游和智慧景区

可视化大屏在智慧旅游领域具有多种价值&#xff0c;可以为旅游管理者和游客提供更加便捷、优质的服务和体验。本期大千UI工场带来智慧旅游和智慧景区的可视化大屏界面&#xff0c;供大家欣赏。 可视化大屏在智慧旅游领域的价值如下&#xff1a; 提供全面的信息展示&#xff0…

数据结构:构建完全二叉查找树

文章目录 1、步骤 1: 对给定数组排序2、步骤 2: 递归构建完全二叉查找树3、注意4、在有序数组中寻找根结点位置5、代码实现6、其他方法&#xff1f;基本思路插入操作删除操作特别考虑 对于一个给定序列的二叉查找树&#xff0c;有很多种&#xff0c;但是完全二叉查找树只有一种…

【网站项目】医院核酸检测预约挂号小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

4.1-4.5算法刷题笔记(17道题)

4.1-4.5算法刷题笔记 1. 区间和2. 区间合并3. 用队列实现栈&#xff08;queueMain queueTemp;&#xff09;4. 最小栈 1. 单链表模板5. 单链表 2. 双链表模板6. 双链表 3. 模拟栈7. 模拟栈(一个数组即可)8. 表达式求值 4. 队列 tt -1,hh 0;9. 模拟队列 5. 单调栈10. 单调栈 6…

【接口自动化】参数化替换

在做接口测试时&#xff0c;除了测单个接口&#xff0c;还需要进行业务链路间的接口测试 比如[注册-登陆]需要token鉴权的业务流 当我们用使用postman/jmeter等工具时&#xff0c;将注册接口的一些响应信息提取出来&#xff0c;放到登陆接口的请求中&#xff0c;来完成某个业务…

在Gazebo中如何拯救翻车的机器人

Gazebo提供了一些交互工具&#xff0c;允许你直接通过图形界面操作模型&#xff1a; 启动Gazebo后&#xff0c;在右侧工具栏中&#xff0c;你会找到一个可以拖拽物体的图标&#xff08;通常是一个手掌图标或者类似的&#xff09;。点击这个图标。 随后&#xff0c;你可以用鼠标…

Linux/Lame

Lame 今天随便乱逛发现这台机器貌似是 HackTheBox 平台的第一台机器&#xff0c;而且我还没做过&#xff0c;从简介上来看的话是一台很简单的机器&#xff0c;快快的玩一下 Enumeration nmap 首先用 nmap 扫描一下常见的端口&#xff0c;发现系统对外开放了 21,22,139,445 端…

面试算法-160-合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 解 class Solution {public ListNode mergeTwoLists(ListNode li…

NineData创始人CEO叶正盛受邀参加『数据技术嘉年华』的技术大会

4月13日&#xff0c;NineData 创始人&CEO叶正盛受邀参加第13届『数据技术嘉年华』的技术大会。将和数据领域的技术爱好者一起相聚&#xff0c;并分享《NineData在10000公里跨云数据库间实时数据复制技术原理与实践》主题内容。 分享嘉宾 叶正盛&#xff0c;NineData CEO …

多线程同步计数器CountDownLatch,CyclicBarrier,Semaphore

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 CountDownLatch CountDownLatch是一个同步工具类,它允许一个或多个线程等…

【学习】软件验收测试,能否选择第三方检测机构进行测试?

随着信息技术的快速发展&#xff0c;软件已经成为各行各业中不可或缺的一部分。为了保证软件的质量和稳定性&#xff0c;验收测试成为了软件开发过程中至关重要的一环。那么&#xff0c;第三方软件测试机构可以做验收测试吗&#xff1f;我们一起来看下今日的分享。 一、验收测…

MySQL操作DML

目录 1.概述 2.插入 3.更新 4.删除 5.查询 6.小结 1.概述 数据库DML是数据库操作语言&#xff08;Data Manipulation Language&#xff09;的简称&#xff0c;主要用于对数据库中的数据进行增加、修改、删除等操作。它是SQL语言的一部分&#xff0c;用于实现对数据库中数…