小编Ume*_*mer的帖子

如何使用Tensorflow推理模型生成像图像一样的深度梦

我正在使用自定义图像集来使用Tensorflow API训练神经网络.在成功的训练过程之后,我得到这些检查点文件,其中包含不同训练var的值.我现在想从这些检查点文件中获取推理模型,我找到了这个脚本,然后我可以使用它来生成深度图像,如本教程中所述.问题是当我使用以下方式加载模型时:

import tensorflow as tf
model_fn = 'export'

graph = tf.Graph()
sess = tf.InteractiveSession(graph=graph)
with tf.gfile.FastGFile(model_fn, 'rb') as f:
  graph_def = tf.GraphDef()
  graph_def.ParseFromString(f.read())
t_input = tf.placeholder(np.float32, name='input')
imagenet_mean = 117.0
t_preprocessed = tf.expand_dims(t_input-imagenet_mean, 0)
tf.import_graph_def(graph_def, {'input':t_preprocessed})
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

graph_def.ParseFromString(f.read())

self.MergeFromString(连载)

raise message_mod.DecodeError('Unexpected end-group tag.')google.protobuf.message.DecodeError:意外的端组标记.

该脚本需要一个协议缓冲区文件,我不确定我用来生成推理模型的脚本是否给我原型缓冲区文件.

有人可以建议我做错了什么,或者有更好的方法来实现这一目标.我只想将张量生成的检查点文件转换为proto缓冲区.

谢谢

inference machine-learning protocol-buffers tensorflow tensorflow-serving

6
推荐指数
1
解决办法
554
查看次数

错误:张量图与会话图不同

我正在尝试从检查点文件加载以前训练过的张量训练模型,现在这些检查点文件中有操作变量,因此要加载图形,我必须首先从 **ckpt.meta 文件加载 graph_def:

graph = tf.Graph()
sess = tf.InteractiveSession(graph=graph)
saver = tf.train.import_meta_graph('/data/model_cache/model.ckpt-39.meta')
    ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
    if ckpt and ckpt.model_checkpoint_path:
       if os.path.isabs(ckpt.model_checkpoint_path):
          saver.restore(sess, ckpt.model_checkpoint_path)
Run Code Online (Sandbox Code Playgroud)

加载模型后,我有一种方法可以使用此模型进行推理以实现深梦算法。问题是当我使用默认会话调用 eval 时,出现以下错误:

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 555, in eval
return _eval_using_default_session(self, feed_dict, self.graph, session)File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework   /ops.py", line 3495, in _eval_using_default_session
raise ValueError("Cannot use the given session to evaluate tensor: "
ValueError: Cannot use the given session to evaluate tensor: the tensor's graph is different from the session's graph.
Run Code Online (Sandbox Code Playgroud)

我已经确认 tf.get_default_graph() 和 sess.graph 指向相同的内存地址。必须有一些非常基本的东西我错过了。

我是 …

machine-learning conv-neural-network deep-dream tensorflow

6
推荐指数
1
解决办法
7800
查看次数

使用Cloudformation和竞价型实例执行RollingUpdate

如果我的ec2启动配置发生任何更改,我将使用cloudformation UpdatePolicy属性执行滚动更新。使用按需实例时,这可以正常工作。但是当我使用竞价型实例时,出现以下错误:

Autoscaling rolling updates cannot be performed because the current launch configuration is using spot instances and MinInstancesInService is greater than zero.
Run Code Online (Sandbox Code Playgroud)

MinInstancesInService属性设置为零可以使其正常工作,但是我会在3-5分钟左右的时间内停机。

有没有一种方法可以使用Cloudformation在不停机的情况下实现这一目标?否则,有人会指出一种更好的方法来自动执行此滚动更新过程,因为我有多个环境,而手动执行此操作很容易出错。谢谢

amazon-web-services amazon-elb aws-cloudformation autoscaling

2
推荐指数
1
解决办法
675
查看次数