小编Tho*_*mas的帖子

Go中的switch和select之间有什么区别?

Go 之间switchselectGo 之间是否有任何区别,
除了一个参与争论而另一个不参与?

go switch-statement goroutine

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

jinja2转义解释字符的序列

我想{#用html 输出,但这是Jinja2评论的开头.这不是来自模板变量.在我的模板中只是简单的html.

有帮助吗?

jinja2

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

如何在tensorflow上加载和使用已保存的模型?

我找到了两种在Tensorflow中保存模型的方法:tf.train.Saver()SavedModelBuilder.但是,在第二种方式加载模型后,我找不到有关使用模型的文档.

注意:我想使用SavedModelBuilder方式,因为我在Python中训练模型并将在服务时使用另一种语言(Go),SavedModelBuilder在这种情况下似乎是唯一的方法.

这很好用tf.train.Saver()(第一种方式):

model = tf.add(W * x, b, name="finalnode")

# save
saver = tf.train.Saver()
saver.save(sess, "/tmp/model")

# load
saver.restore(sess, "/tmp/model")

# IMPORTANT PART: REALLY USING THE MODEL AFTER LOADING IT
# I CAN'T FIND AN EQUIVALENT OF THIS PART IN THE OTHER WAY.

model = graph.get_tensor_by_name("finalnode:0")
sess.run(model, {x: [5, 6, 7]})
Run Code Online (Sandbox Code Playgroud)

tf.saved_model.builder.SavedModelBuilder()自述文件中定义, 但在加载模型后tf.saved_model.loader.load(sess, [], export_dir),我找不到有关返回节点的文档(参见"finalnode"上面的代码)

tensorflow

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

Redis Cross Slot错误

我试图在Redis上一次插入多个键/值(一些值是集合,一些是哈希),我得到这个错误:ERR CROSSSLOT Keys in request don't hash to the same slot.

我不是这样做的,redis-cli而是来自需要将多个键/值写入redis集群的Go代码.我在代码中看到其他地方以这种方式完成多个键值,我不明白为什么我的工作不起作用.没有此错误的哈希要求是什么?

谢谢

redis

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

CGO_ENABLED 如何影响动态链接和静态链接?

我们正在编译要在 docker 上运行的 Go 代码,并且正在调查为什么我们的二进制文件没有执行。我们发现它缺少一些动态库(尽管我们想要静态链接的二进制文件)。

这就是它的编译方式。

env GOOS=linux CGO_ENABLED=1 GO111MODULE=on GOPRIVATE=github.com/ourrepo GOPROXY=https://proxy.golang.org go build --installsuffix cgo --ldflags='-extldflags=-static' -o program main.go

使用相同的构建命令CGO_ENABLED=0最终解决了问题,并且输出二进制文件是静态链接的。

现在奇怪的部分是我们有另一个程序使用相同的构建命令,这次是CGO_ENABLED=1and...它是静态链接的!

所以我很困惑为什么在某些情况下CGO_ENABLED=1会产生动态链接,有时会产生静态链接。很高兴提供更多细节。

dynamic-linking go static-linking

10
推荐指数
1
解决办法
7197
查看次数

为什么我不能将菜单连接到我的视图控制器IBAction?

我有一个基于文档的应用程序.我刚在故事板中创建了菜单项,在视图控制器中创建了IBActions.但是,将动作连接到目标的常用方法不起作用

-(IBAction) markAsHidden:(id)sender;
-(IBAction) markAsVisible:(id)sender;
-(IBAction) toggleHidden:(id)sender;
Run Code Online (Sandbox Code Playgroud)

这是我从菜单项中看到的内容,我按Ctrl键并从菜单中单击鼠标到View Controller.它没有显示我的IBActions.

任何的想法 ?我的2美分猜测是它与基于文档的应用程序有关,但......不太确定

连接菜单

xcode cocoa nsstoryboard

9
推荐指数
2
解决办法
4307
查看次数

golang 中的 len() 线程安全吗?

我每秒都在记录地图的长度;我不在乎我是否有“确切的”值/竞争条件(一个就可以了)。我很想知道这是否会引起恐慌,以及我是否必须附上len()一些.RLock()/Unlock()

我问是因为映射中的并发读/写会导致恐慌(Go 检测到),但我不知道读取长度是否算作“读取”。我试过一个测试程序,但不能产生崩溃,但我宁愿有一个确切的答案,至少是为了它。

如果重要的话,我对数组和地图的 len 都感兴趣。谢谢!

go

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

通过AVR汇编程序"hello world"代码

我正在尝试为Arduino Duemilanove(AVR ATmega328P)编写一些汇编语言.在编译和反汇编C代码的同时学习汇编语言,我得到了:

(用AVR_GCC编译)

int main() {
  volatile int a = 0;
  while (1) {
    ++a;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

哪个变成了

00000000 <__vectors>:
   0: 0c 94 34 00   jmp 0x68  ; 0x68 <__ctors_end>
   4: 0c 94 51 00   jmp 0xa2  ; 0xa2 <__bad_interrupt>
  ...
  64: 0c 94 51 00   jmp 0xa2  ; 0xa2 <__bad_interrupt>

00000068 <__ctors_end>:
  68: 11 24         eor r1, r1
  6a: 1f be         out 0x3f, r1  ; 63
  6c: cf ef         ldi r28, 0xFF ; …
Run Code Online (Sandbox Code Playgroud)

assembly arduino avr-gcc

7
推荐指数
1
解决办法
1602
查看次数

不能在mongodb上收集一个集合


我在mongo上有一个db("mydb"),它包含2个集合(c1和c2).c1已经是哈希分片.我想以同样的方式对第二个集合进行分片.我收到以下错误:

use mydb
sh.shardCollection("mydb.c2", {"LOG_DATE": "hashed"})
    {
"proposedKey" : {
    "LOG_DATE" : "hashed"
},
"curIndexes" : [
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "mydb.c1",
        "name" : "_id_"
    }
],
"ok" : 0,
    "errmsg" : "please create an index that starts with the shard key before sharding."
Run Code Online (Sandbox Code Playgroud)

所以我做了

db.c2.ensureIndex({LOG_DATE: 1})
sh.shardCollection("mydb.c2", {"LOG_DATE": "hashed"})
Run Code Online (Sandbox Code Playgroud)

相同的错误,但它显示新的索引.

"proposedKey" : {
    "LOG_DATE" : "hashed"
},
"curIndexes" : [
    {
        "v" : 1,
        "key" : {
            "_id" : 1 …
Run Code Online (Sandbox Code Playgroud)

mongodb

7
推荐指数
1
解决办法
8137
查看次数

如何在 Go 中 gc 互斥锁映射?

我正在围绕数据库制作缓存包装器。为了解决可能缓慢的数据库调用,我在考虑每个键的互斥锁(伪 Go 代码):

mutexes = map[string]*sync.Mutex // instance variable

mutexes[key].Lock()
defer mutexes[key].Unlock()

if value, ok := cache.find(key); ok {
   return value
}
value = databaseCall(key)
cache.save(key, value)
return value
Run Code Online (Sandbox Code Playgroud)

但是我不希望我的地图增长太多。我的缓存是一个 LRU,我想有一个固定的大小,因为这里没有提到的其他一些原因。我想做类似的事情

delete(mutexes, key)
Run Code Online (Sandbox Code Playgroud)

当钥匙上的所有锁都结束但......对我来说这看起来不是线程安全的......我应该怎么做?

注意:我在 Go 中发现了这个问题 ,我们可以使用每个键的锁来同步地图的每个键吗?但没有答案

thread-safety go

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