从我到目前为止收集的内容来看,有几种不同的方法可以将TensorFlow图转储到文件中,然后将其加载到另一个程序中,但我无法找到有关它们如何工作的明确示例/信息.我已经知道的是:
tf.train.Saver()
然后将其恢复(源代码)tf.train.write_graph()
和tf.import_graph_def()
(源)加载回来as_graph_def()
保存模型,并为权重/变量,它们映射到常数(源)但是,我无法澄清有关这些不同方法的几个问题:
tf.train.write_graph()
,是否也保存了权重/变量?tf.import_graph_def()
吗?as_graph_def()
keeppt/.pb有什么区别?简而言之,我正在寻找的方法是将图形(如,各种操作等)及其权重/变量保存到文件中,然后可以将其用于将图形和权重加载到另一个程序中,使用(不一定继续/再培训).
关于这个主题的文档不是很简单,所以任何答案/信息将不胜感激.
我有一个ReorderableList
由ListTiles
和组成ExpansionTiles
,并且希望 的子项ExpansionTiles
可以重新排序。在它们也是一个混合的孩子是递归ListTiles
和ExpansionTiles
。这是我当前的代码:
Widget _buildList() {
return Scrollbar(
child: ReorderableListView(
padding: const EdgeInsets.all(25),
children: topLevelOrder.map<Widget>(_buildItem).toList(),
onReorder: (oldIndex, newIndex) {
// ...
},
),
);
}
Widget _buildItem(String id) {
Map item = data[id];
List children = item["children"];
if (children.length > 0) {
List<Widget> childWidgets = [];
for (var child in children)
childWidgets.add(_buildItem(child));
return ExpansionTile(
key: Key(id),
initiallyExpanded: true,
title: Text(id),
children: [
ReorderableListView(
children: childWidgets,
onReorder: (oldIndex, newIndex) { …
Run Code Online (Sandbox Code Playgroud) 该Tensorflow Android的演示为构建使用TensorFlow图的Android应用程序一个体面的基础,但我一直陷在如何重新调整它的一个应用程序,不执行图像分类.实际上,它从.pb文件中加载Inception图并使用它来运行推理(并且代码假设如此),但我想要做的是加载我自己的图(来自.pb文件) ),并执行如何处理图形输入/输出的自定义实现.
该图表来自Udacity深度学习课程的作业6,即使用LSTM生成文本的RNN.(我已经将它冻结成.pb文件.)然而,Android演示代码基于他们正在处理图像分类器的假设.到目前为止,我已经发现我需要更改传入的参数值tensorflow.initializeTensorflow
(调用TensorFlowImageListener
),但是有几个参数表示图像输入的属性(例如IMAGE_SIZE
),我想要加载的图形没有.这是否意味着我将不得不更改本机代码?更一般地说,我如何处理整个问题?
我UITextField
在一个按钮旁边的视图中定位.它对按钮的尾随约束为8(对于superview有一个8的尾随约束),当我在其中键入长文本时,它只是滚动,这是我想要的.但是,如果视图切换到另一个视图(它位于选项卡控制器中),为了保留在字段中键入的文本,我将文本保存在holder变量中,当它切换回该视图时,我将文本设置为保存文本的字段.
问题是,如果文本足够长,这会导致字段水平扩展,有时甚至使用尾随8约束将按钮推离屏幕.我试图将字段的原始框架保存在holder变量中,然后在设置文本后,将框架设置为保存的原始框架,如下所示:
fieldFrame = messageField.frame
println(messageField.frame.width)
messageField.text = holderMessage
println(messageField.frame.width)
messageField.frame = fieldFrame
Run Code Online (Sandbox Code Playgroud)
然而,该领域仍然扩大,并打印出502.0
两次.我目前的想法是,在为println设置文本后,框架没有记录宽度的变化,但我不确定这是否正确.
另外,我已经阅读了一些类似的问题,建议使用宽度约束.如果我在字段上使用小于或等于宽度约束,如果在更薄的设备上,它是否仍会展开?也就是说,因为我目前正在使用任何宽度和任何高度的故事板,它比iPhone 6更宽.所以如果我在场的当前宽度上设置小于或等于宽度约束,那么似乎有可能该字段仍可以在较小的设备上扩展而不会破坏该约束.
有没有更好的方法来做这样的宽度约束?如果没有,我怎么能保持场地不扩展并在屏幕外按下按钮?
在我的选项卡式应用程序中,第一个选项卡是导航控制器,显示聊天会话的表格视图(ChatsViewController).在视图控制器中,由于我使用Parse作为后端,我测试PFUser.currentUser()是否为nil,如果是,则我提供一个认证视图控制器.但是,打开应用程序后,它会在启动屏幕后立即崩溃.这是控制台输出:
1
2
2015-07-15 11:13:55.251 Chat App[1116:90011] Presenting view controllers on detached view controllers is discouraged <Chat_App.ChatsViewController: 0x7fade2442fa0>.
3
2015-07-15 11:13:55.256 Chat App[1116:90011] -[UIView tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fade262ec70
2015-07-15 11:13:55.264 Chat App[1116:90011] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fade262ec70'
*** First throw call stack:
(
0 CoreFoundation 0x0000000106a3bc65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001085a6bb7 objc_exception_throw + 45
2 CoreFoundation 0x0000000106a430ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010699913c …
Run Code Online (Sandbox Code Playgroud) ios ×2
tensorflow ×2
android ×1
android-ndk ×1
autolayout ×1
flutter ×1
java ×1
python ×1
swift ×1
uitableview ×1
uitextfield ×1