小编Car*_*omé的帖子

加载SavedModel比加载tf.train.Saver检查点要慢很多

我改为tf.train.SaverSavedModel格式,这意味着从磁盘加载我的模型要慢很多(而不是几秒钟,它需要几分钟).为什么这样做以及如何更快地加载模型?

我曾经这样做过:

# Save model
saver = tf.train.Saver()
save_path = saver.save(session, model_path)

# Load model
saver = tf.train.import_meta_graph(model_path + '.meta')
saver.restore(session, model_path)
Run Code Online (Sandbox Code Playgroud)

但现在我这样做:

# Save model
builder = tf.saved_model.builder.SavedModelBuilder(model_path)
builder.add_meta_graph_and_variables(session, [tf.saved_model.tag_constants.TRAINING])
builder.save()

# Load model
tf.saved_model.loader.load(session, [tf.saved_model.tag_constants.TRAINING], model_path)
Run Code Online (Sandbox Code Playgroud)

python protocol-buffers tensorflow

29
推荐指数
1
解决办法
1474
查看次数

用tf.estimator提早停止,怎么样?

tf.estimator在TensorFlow 1.4中使用tf.estimator.train_and_evaluate它很棒,但我需要提前停止.添加它的首选方法是什么?

我认为这有一些tf.train.SessionRunHook地方.我看到有一个旧的contrib包ValidationMonitor似乎提前停止了,但它似乎不再是1.4了.或者未来的首选方式是依靠tf.keras(早期停止真的很容易)而不是tf.estimator/tf.layers/tf.data,或许?

python neural-network keras tensorflow tensorflow-estimator

20
推荐指数
1
解决办法
8880
查看次数

如何配置tf.data.Dataset?

我正在努力了解我所拥有的瓶颈input_fn,tf.data.Dataset所以我想我会使用tf.profiler但它只显示迭代器操作.如何让探查器在我的数据集管道中输出相关的操作?

dataset = input_fn()
iterator = dataset.make_one_shot_iterator()
minibatch = iterator.get_next()
run_metadata = tf.RunMetadata()
with tf.Session() as session:
    features, labels = session.run(minibatch, 
                                   options=tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE),
                                   run_metadata=run_metadata)

tf.profiler.advise(tf.get_default_graph(), run_metadata)
Run Code Online (Sandbox Code Playgroud)

输出:

checkers {
  key: "AcceleratorUtilizationChecker"
  value {
  }
}
checkers {
  key: "ExpensiveOperationChecker"
  value {
    reports: "top 1 operation type: IteratorGetNext, cpu: 79.89sec, accelerator: 0us, total: 79.89sec (99.96%)\ntop 2 operation type: OneShotIterator, cpu: 27.92ms, accelerator: 0us, total: 27.92ms (0.03%)\ntop 3 operation type: _retval_IteratorGetNext_3_3, cpu: 57us, accelerator: 0us, total: …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

18
推荐指数
1
解决办法
601
查看次数

为什么我会使用tf.concat而不是tf.stack?

是否有充分的理由使用tf.concat而不是tf.stack?它们看起来很相似.是否只是为了保证得到的张量与张量输入列表具有相同的维数?

python tensorflow

17
推荐指数
1
解决办法
1万
查看次数

tf.group和tf.control_dependencies有什么区别?

除了tf.control_dependencies作为上下文管理器(即与Python一起使用with)之外,tf.group和之间的区别是tf.control_dependencies什么?

什么时候应该使用?

tf.group没有任何特定的操作顺序吗?我假设tf.group([op_1, op_2, op_3])在列表的顺序中执行ops,但也许情况并非如此?docstring不指定行为.

tensorflow

12
推荐指数
1
解决办法
6335
查看次数

如何在TensorFlow图中读取Ogg或MP3音频文件?

我见过tf.image.decode_pngTensorFlow中的图像解码器,但读取音频文件(WAV,Ogg,MP3等)怎么样?没有可能TFRecord吗?

这样的事情:

filename_queue = tf.train.string_input_producer(['my-audio.ogg'])
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
my_audio = tf.audio.decode_ogg(value)
Run Code Online (Sandbox Code Playgroud)

audio ffmpeg tensorflow

8
推荐指数
2
解决办法
2177
查看次数

如何在TensorFlow中进行全球平均合并?

如何在TensorFlow中进行全球平均合并?如果我有一个形状的张量,batch_size, height, width, channels = 32, 11, 40, 100只要使用tf.layers.average_pooling2d(x, [11, 40], [11, 40])channels = classes 就足够了吗?

tensorflow

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

从源代码构建TensorFlow时,-c opt和--config = opt之间有什么区别?

当从源代码构建TensorFlow时,我们被要求设置--config=opt(默认情况下会启用gcc标志-march=native)但是在整个网络上我看到很多人使用-c opt,但根据Bazel的文档-c实际上是简写--compilation_mode而不是--config!

令人困惑的是,--compilation_mode也将'opt'作为一个值,但我认为这只是巧合?有人可以澄清在TensorFlow编译期间执行-c opt和之间的区别吗?--config=optbazel build

bazel tensorflow

7
推荐指数
2
解决办法
3548
查看次数

在 lambda 中使用上下文管理器,如何?

如何在 lambda 中使用上下文管理器?接受黑客攻击。暂缓认为这是 lambda 的错误用法的观点。

我知道我可以这样做:

def f():
    with context():
        return "Foo"
Run Code Online (Sandbox Code Playgroud)

但我想做这样的事情:

lambda: with context(): "Foo"
Run Code Online (Sandbox Code Playgroud)

python lambda with-statement contextmanager

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

使用 Cordova 相机插件选取的图像绘制画布

我从设备获取图像并使用 Pixi JS 绘制带有过滤器的画布。使用计算机获取图像效果很好。但是当我在 IOS 上时,它会抛出错误,例如跨源问题,或者我正在尝试使用未知格式。

这是我用来绘制图像的代码(适用于网络/桌面,但不适用于cordova构建的ios应用程序)

_renderImage() {
    let wWidth;
    if (window.outerWidth > 414) {
      wWidth = 414;
    } else {
      wWidth = window.outerWidth;
    }

    const img = new Image();
    img.src = this.state.avatarSource;

    let lower;
    if (img.width > img.height) {
      lower = img.height;
    } else {
      lower = img.width;
    }

    const canvas = this.refs.canvasimg;
    if (canvas.hasChildNodes()) {
      canvas.removeChild(canvas.childNodes[0]);
    }

    const renderer = PIXI.autoDetectRenderer(wWidth, wWidth * 1.25, {transparent: true});
    const stage = new PIXI.Container();

    canvas.appendChild(renderer.view);

    // create a PIXI sprite …
Run Code Online (Sandbox Code Playgroud)

javascript canvas html5-canvas cordova pixi.js

5
推荐指数
1
解决办法
2020
查看次数