国内买机票的网站建设有啥好玩的网页游戏
news/
2025/10/4 23:37:45/
文章来源:
国内买机票的网站建设,有啥好玩的网页游戏,成都 网页设计 兼职,有免费的域名注册简介
TensorFlow是由Google团队开发的一个开源深度学习框架#xff0c;完全基于Python语言设计。它的初衷是以最简单的方式实现机器学习和深度学习的概念#xff0c;结合了计算代数的优化技术#xff0c;使计算许多数学表达式变得简单。
优势#xff1a;
强大的计算能力…简介
TensorFlow是由Google团队开发的一个开源深度学习框架完全基于Python语言设计。它的初衷是以最简单的方式实现机器学习和深度学习的概念结合了计算代数的优化技术使计算许多数学表达式变得简单。
优势
强大的计算能力支持多种硬件和分布式计算灵活的数据流模型便于构建复杂的模型丰富的 社区资源和生态系统
tf.keras库
该库是一个高阶api库提供了很多训练模型时需要使用的工具
tf.keras.models.Sequential用于顺序地堆叠模型的各个层。
tf.keras.layers.Dense用于定义全连接层。
tf.keras.layers.Flatten用于将多维数组转换为一维数组。
tf.keras.losses提供了各种损失函数。
tf.keras.optimizers提供了优化器。
tf.keras.metrics提供了评估指标如准确率、精确率等构建模型的方式
Sequential 模型使用 tf.keras.Sequential 类可以按顺序堆叠层来构建模型。这是一种简单的模型构建方式适用于层之间是线性关系的情况函数式 API使用函数式 API 可以构建更复杂、具有分支和合并的模型结构。这种方式允许你创建具有多个输入和输出的模型子类化模型通过继承 tf.keras.Model 类并自定义 init 和 call 方法来构建模型。这种方式提供了更大的灵活性可自定义模型的计算图
使用Sequential 构建模型
import tensorflow as tf
# Sequential 模型
model tf.keras.models.Sequential([# tf.keras.layers.Dense 构建全连接层 64表示数据类型unit64 relu表示激活函数tf.keras.layers.Dense(64,activationrelu,input_shape(784,)),tf.keras.layers.Dense(64,activationrelu),tf.keras.layers.Dense(10,activationsoftmax),
])# 编译模型
model.compile(optimizeradam, # 指定优化器losssparse_categorical_crossentropy, # 指定损失函数metrics[accuracy] # 指定评估指标)开始训练
# 开始训练
history model.fit(train_data_x, # 训练数据集validation_data test_data_x, # 验证集epochs10 # 根据需要设置训练轮数
)model.evaluate(test_data_y) # 使用测试集测试模型这样可以降低测试集的损失和收敛情况以保证模型不容易过拟合
拿到代码之后修改算法的几种方案
第一种多加几层卷积层、池化层和全连接层
tf.teras.Sequential([layers.lambda((lambda x : tf_fn(process_base64_image,x,fn_output_signaturetf.TensorSpec(shape(int(img_height),int(img_width),3),dtypetf.float32))),nameimage_decode_png),layers.ConV2D(32,(3,3),activationrelu),layers.MaxPooling2D(2,2),layers.ConV2D(64,(3,3),activationrelu),layers.MaxPooling2D(2,2),layers.ConV2D(128,(3,3),activationrelu)layers.Flatten(),layers.Dense(128,activationrelu),layers.Dense(class_nums,activationsoftmax)
])第二种使用vgg网络
from tensorflow.keras.applications.vgg16 import VGG16
# 构建vgg16网络并使其预置参数冻结
base_model VGG16(weightsimagenet,include_topFalse,input_shape(int(img_height),int(image_width,3)))
for layer in base_model.layers:layer.trainable Falseinput_layer base_model.input # 获取vgg的输入层
x layers.Flatten()(input_layer)
x layers.Dense(128,activationrelu)(x)
outputs layers.Dense(class_nums,activationsoftmax)(x)# 构建完整的模型
tf.keras.Sequential([layers.lambda(),base_model,outputs
])
第三种使用残差网络
from tensorflow.keras.applications.resnet50 import ResNet50
# 构建ResNet50模型并使其预置参数冻结base_model ResNet50(weightsimagenet,include_topFalse,input_shape(int(img_height),int(img_width),3))
for layer in base_model.layers:layer.trainable Falsex base_model.output
x layers.GlobalAveragePoolMax2D()(x)
x layers.Dense(1024,activationrelu)(x)
output layers.Dense(class_nums,activationsotfmax)(x)# 构建完整模型
model tf.keras.Sequential([layers.lambda(),base_model,output
])
模型导出
# 模型导出
import pytz
from datetime import datetime
model_version datetime.now(pytz.timezone(Asia/Shanghai)).strftime(%Y%m%d%H%M%S)tf.keras.models.save_model(model,f/model/slot1/{model_version},overwriteTrue)模型的使用(部署)
导出模型之后就需要使用这个模型一共有两种方法来使用这个模型
TensotFlow-Serving使用tf自带的包加载
本帖只讲解TensorFlow-Serving使用模型的方式
TensorFlow-Serving是一种灵活的高性能服务系统适用于机器学习模型专为生产环境而设计。TensotFlow Serving 可以轻松部署新算法和实验同时保持相同的服务器架构和构。TensorFlow-Serving提供与TensorFlow模型的开箱即用集成但可以轻松扩展以提供类型的模型和数据。
重点通过api部署
TensorFlow中的图像预处理
有一些图像预处理的方法是万能通用的 归一化处理 将像素值缩放到0到1之间或者-1到1之间以消除由于光照条件不同而导致的亮度差异。这可以通过减去所有像素值的平均值然后除以标准差来实现 数据增强
通过旋转、翻转、平移、裁剪等操作来增加数据集的大小从而提高模型的泛化能力。
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator# 创建一个ImageDataGenerator对象设置旋转、翻转、平移等操作
datagen ImageDataGenerator(rotation_range40, # 随机旋转角度范围width_shift_range0.2, # 水平平移范围height_shift_range0.2, # 垂直平移范围shear_range0.2, # 剪切强度zoom_range0.2, # 缩放范围horizontal_flipTrue, # 是否进行水平翻转fill_modenearest # 填充新创建像素的方法
)# 加载图片
img tf.keras.preprocessing.image.load_img(R.jpg)
x tf.keras.preprocessing.image.img_to_array(img)
x x.reshape((1,) x.shape)# 使用ImageDataGenerator生成增强后的图片
i 0
for batch in datagen.flow(x, batch_size1):i 1if i 20: # 生成20张增强后的图片breakimage tf.keras.preprocessing.image.array_to_img(batch[0])image.save(save/augmented_image_ str(i) .jpg)图片处理方式及其理由
将图像转换为灰度图 理由将彩色图像转为灰度图像可以减少数据量简化计算降低图像处理的复杂度提高图像的处理速度和准确性。
gray_img cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 增强图像对比度 理由 图像对比度提高图像中的物体边缘和细节就会变得容易识别从而提高图像识别和分析的准确性
alpha 1.5
beta 0
img cv2.convertScaleAbs(gray_img, alphaalpha, betabeta) 锐化图像 理由锐化图像可以增强图像的边缘和细节提高图像的清晰度和对比度从而可能提高模型准确度。
kernel np.array([[0, -1, 0], [-1, 5,-1], [0, -1, 0]])
img cv2.filter2D(img, -1, kernel)软件调试流程
进入到Kimage软件之后就是点击设备 从左往右数第三个 点击比赛使用的设备 点击回原点 移动点位将画板移动到笔的正下方笔尖轻触画纸
调整完毕后点击第二个按钮进入主流程 点击初始位置改变画笔下降高度为刚刚轻触在纸上的高度 速度调到50 进入MVVIEWER软件 网口配置好之后连接摄像头 在连接的同时调整亮度保证在软件中看的清楚图像的画面
打开图像识别客户端 查看配置可以看到图像识别客户端所在的网口 是2网段所以工控机和相机连接的网口也一定是要2网段
在自己电脑运行虚拟机 并且在浏览器中进入大数据平台 在图像检测客户端中点击开始 运行训练模式 相机会拍摄四张照片 接着人工截取四个工件并标记合格与不合格
点击提交提交前要更换下一张纸
训练完成后就可以在云平台查看标注的图片数据 也可以用程序根据接口 访问查找数据
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927684.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!