- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题由以下人员组成:
我编写了原始超分辨率 GAN 降级版本的 Python Keras 实现。现在我想使用 Google Firebase 机器学习套件对其进行测试,方法是将其托管在 Google 服务器中。这就是为什么我必须将 Keras 程序转换为 TensorFlow Lite 程序。
我正在 Google Colab 工作环境上训练我的程序:在那里,我安装了TF 2.0.0-beta1
(这个选择是由于这个不正确的答案: https://datascience.stackexchange.com/a/57408/78409 )。
工作流程(和问题):
我在本地编写 Python Keras 程序,请记住它将在 TF 2 上运行。因此我使用 TF 2 导入,例如:from tensorflow.keras.optimizers import Adam
以及from tensorflow.keras.layers import Conv2D, BatchNormalization
我将代码发送到我的云端硬盘
我使用 Google Colab Notebook:TF 2 运行时没有任何问题。
我在云端硬盘中获取输出模型,然后下载它。
我尝试通过执行以下 CLI 将此模型转换为 TFLite 格式:tflite_convert --output_file=srgan.tflite --keras_model_file=srgan.h5
:此处出现问题。
之前的 CLI 不会输出从 TF (Keras) 模型转换而来的 TF Lite 模型,而是输出以下错误:
ValueError: Unknown loss function:build_vgg19_loss_network
函数 build_vgg19_loss_network
是我实现的自定义损失函数,必须由 GAN 使用。
自定义损失函数的实现如下:
def build_vgg19_loss_network(ground_truth_image, predicted_image):
loss_model = Vgg19Loss.define_loss_model(high_resolution_shape)
return mean(square(loss_model(ground_truth_image) - loss_model(predicted_image)))
generator_model.compile(optimizer=the_optimizer, loss=build_vgg19_loss_network)
正如我在 StackOverflow 上阅读的那样(链接位于本问题开头),TF 2 被认为足以输出 Keras 模型,该模型将由我的 tflite_convert
CLI 正确处理。但显然并非如此。
当我在 GitHub 上阅读时,我尝试通过添加以下行在 Keras 损失函数中手动设置自定义损失函数:importtensorflow.keras.losses
。没成功。
tensorflow.keras.losses.build_vgg19_loss_network = build_vgg19_loss_network
我在 GitHub 上读到,我可以通过 load_model
Keras 函数使用自定义对象:但我只想使用 compile
Keras 函数。不是load_model
。
我只想对我的代码进行微小的更改,因为它工作得很好。因此,例如,我不想将 compile
替换为 load_model
。有了这个限制,您能帮我让我的 CLI tflite_convert
与我的自定义损失函数配合使用吗?
最佳答案
由于您声称 TFLite 转换由于自定义损失函数而失败,因此您可以保存模型文件而不保留优化器详细信息。为此,请将 include_optimizer
参数设置为 False,如下所示:
model.save('model.h5', include_optimizer=False)
现在,如果模型中的所有图层都是可转换的,它们应该会转换为 TFLite 文件。
编辑:然后您可以像这样转换 h5 文件:
import tensorflow as tf
model = tf.keras.models.load_model('model.h5') # srgan.h5 for you
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
克服 TFLite 转换中不支持的运算符的通常做法是 documented here .
关于tensorflow - 在 {TF 2.0.0-beta1 上使用 tflite_convert 时为 "Unkown (custom) loss function"; Keras} 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57576036/
Unkown provider: $urlMatcherFactory 这是当我尝试在应用程序配置中注入(inject) $urlMatcherFactory 时 Angular 抛出的错误消息。 我
背景 公司一个golang的项目,使用到了公司的私有仓库,去执行go mod tidy(下载依赖)的时候,到download公司私有库的时候就报错,报错信息也不明显,只是提示找不到影响版本unko
在以下两个命令中,第二个抛出异常说“未知编解码器 libfdk_aac”。谁能指出我,可能是什么问题? $> ffmpeg -loglevel verbose -re -i /var/mp4s/tes
所以我声明了一个名为 my_class 的模板类,并在另一个文件“main.cpp”中使用了这个类。 我在 main.cpp 中包含了“my_class.h”,但出现了未知类型名称错误,有人知道发生了
我已经在给出的指令的帮助下为 odroid-xu 构建了内核 HERE 内核源码:- https://github.com/hardkernel/linux/tre ... android-jb我
所以我一直在为一个项目开发这个应用程序,我的模拟器一直运行良好,直到今天早些时候,已经花了 6 个小时左右的时间来修复这个问题,但没有办法修复它。我已经删除了 eclipse 并重新安装它,重新安装
我有一个 Web 应用程序,它使用 DataTables 进行服务器端处理。我有一些 SQL 查询可以任意重新组合列中的数据,所以我得到这样的查询: SELECT case `column` WHEN
我在这段 SQL 代码中使用了准备好的语句: SELECT `name` FROM `securities` WHERE `symbol`=? AND `type`=`C` 但是当我执行它时,我一直收
我正在使用如下所示的查询创建 View : create view v2 as (select * from appearance a where exists ( select p.id f
我在 Android 4.3 上遇到这个错误。由谷歌开发者控制台报告。我的客户提示应用程序在他们刚打开时就崩溃了。 请告诉我应该怎么做。这不是我可以处理的事情,因为错误不是通常的 Java 错误消息。
我正在使用 Devise 进行身份验证,因此我在我的遗留数据库中为一些列设置了别名以适应它,如下所示: class User [:username] attr_accessible :usern
我正在使用 qSetMessagePattern 来格式化输出。 奇怪的是即使我设置了%{file}和%{line},我也只能得到unknown和 0 在我的输出中。 %{function} 也是如此
我读了很多关于这个主题的帖子,我的头快要爆炸了。 我正在尝试创建一个小表单,用于更新客户的潜在客户数据库,并列出数据库中的所有条目。我不是后端开发人员,我曾多次向我的客户提到这一点,但我的客户似乎并不
我有一个 Spring 新的 Web 应用程序(Java),在用户登录(使用用户名和密码)后,我想让用户能够添加新用户,直到那时一切都很好。每个用户都有一个自动递增的主键 iduser (AI) 和一
我在 android calender 工作。我使用 android 应用程序以编程方式在 Calender 中添加事件。我也引用了这个链接:IllegalArgumentException: Unk
我正在尝试将 2 个表连接到另一个表。我有这个 SQL 查询: SELECT desc_1.description, desc_2.description, Object.objID, Item.it
我已经下载了 Android Tree 并成功编译并在设备上运行它。之后,我添加了一些 C++ 文件,但出现如下错误:没有这样的文件或目录。我尝试添加 libSTLport_static 但这对我不起
我使用 mgwt 和 GWTP。上 this page其中写了如何生成 Html5Manifest 文件。 在开发模式下运行我的应用程序时,出现以下错误: [WARN] /testmobile.man
为什么下面的代码会输出“Unknown error”?我期待一些其他消息,例如“操作超时”或其他描述性错误。 操作系统:Windows 7 boost :1.57 #include #include
我安装了新的 alfresco 社区版本 5.0.a。我正在尝试使用 java 连接器服务来上传/下载可在 4.2.c 露天安装中正常工作的文件。 此连接器应用程序使用chemistry-opencm
我是一名优秀的程序员,十分优秀!