小编Zuz*_*uza的帖子

C++ 11 thread_local变量是否自动静态?

这两个代码段之间是否存在差异:

void f() {
    thread_local vector<int> V;
    V.clear();
    ... // use V as a temporary variable
}
Run Code Online (Sandbox Code Playgroud)

void f() {
    static thread_local vector<int> V;
    V.clear();
    ... // use V as a temporary variable
}
Run Code Online (Sandbox Code Playgroud)

Backstory:最初我有一个STATIC向量V(用于保存一些中间值,每次进入函数时都会被清除)和一个单线程程序.我想把程序变成多线程程序,所以我不得不摆脱这个静态修饰符.我的想法是将每个静态转换为thread_local并且不担心其他任何事情?这可能会适得其反吗?

c++ thread-local-storage c++11

71
推荐指数
4
解决办法
3万
查看次数

使用云端硬盘v2 API将CSV上传到Google云端硬盘电子表格

如何使用Drive API v2将本地CSV文件上传到Google云端硬盘,以便上传的文件采用原生Google电子表格格式.最好是在Python中,但原始的HTTP请求就足够了.

我尝试了什么:

  1. 请求正文内容类型:'application/vnd.google-apps.spreadsheet',media_body content-type:'text/csv'. - > 401 Bad Request

  2. 请求正文内容类型:'application/vnd.google-apps.spreadsheet',media_body content-type:'application/vnd.google-apps.spreadsheet'. - > 400 Bad Request

  3. ...(其他几个例如留下一个属性和类似的,通常有400或驱动器不认识它作为本机电子表格)

csv google-sheets google-drive-api

23
推荐指数
4
解决办法
2万
查看次数

如何检查weak_ptr是否为空(未分配)?

有没有办法区分分配的(可能已过期的)weak_ptr和未分配的weak_ptr.

weak_ptr<int> w1;
weak_ptr<int> w2 = ...;
Run Code Online (Sandbox Code Playgroud)

我理解以下检查未分配或到期,但有没有(更便宜?)检查只有非转让?

if (!w.lock()) { /* either not assigned or expired */ }
Run Code Online (Sandbox Code Playgroud)

c++ weak-ptr c++11

16
推荐指数
2
解决办法
6399
查看次数

如何将 Tensorflow BatchNormalization 与 GradientTape 结合使用?

假设我们有一个使用 BatchNormalization 的简单 Keras 模型:

model = tf.keras.Sequential([
                     tf.keras.layers.InputLayer(input_shape=(1,)),
                     tf.keras.layers.BatchNormalization()
])
Run Code Online (Sandbox Code Playgroud)

如何实际使用 GradientTape?以下似乎不起作用,因为它没有更新移动平均线?

# model training... we want the output values to be close to 150
for i in range(1000):
  x = np.random.randint(100, 110, 10).astype(np.float32)
  with tf.GradientTape() as tape:
    y = model(np.expand_dims(x, axis=1))
    loss = tf.reduce_mean(tf.square(y - 150))
  grads = tape.gradient(loss, model.variables)
  opt.apply_gradients(zip(grads, model.variables))
Run Code Online (Sandbox Code Playgroud)

特别是,如果您检查移动平均值,它们将保持不变(检查 model.variables,平均值始终为 0 和 1)。我知道可以使用 .fit() 和 .predict(),但我想使用 GradientTape 并且我不知道如何执行此操作。某些版本的文档建议更新 update_ops,但这似乎在急切模式下不起作用。

特别是,经过上述训练后,以下代码将不会输出任何接近 150 的结果。

x = np.random.randint(200, 210, 100).astype(np.float32)
print(model(np.expand_dims(x, axis=1)))
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow batch-normalization gradienttape

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

Gremlin和Tinkerpop之间的区别

我试图了解Tinkerpop和Gremlin(上下文:http ://tinkerpop.apache.org/ )之间的区别。

我的假设是Gremlin只是可以使用不同后端的查询/遍历语言,而Tinkerpop是Gremlin客户端+ Gremlin后端(db)。官方描述说Tinkerpop是一个“图形计算框架”,对我来说有点太含糊。

graph-databases gremlin tinkerpop

3
推荐指数
1
解决办法
604
查看次数