小编luc*_*ang的帖子

这是因为go编译器优化了代码吗?

package main

import "time"

func main() {
    i := 1
    go func() {
        for {
            i++
        }
    }()
    <-time.After(1 * time.Second)
    println(i)
}
Run Code Online (Sandbox Code Playgroud)

总是输出1.

然而,1s足以让for循环经历多次.

我认为,i在闭包是imainFUNC.

请参阅下面的代码.

package main

import "time"

func main() {
    i := 1
    go func() {
        for {
            i++
            println("+1")
        }
    }()
    <-time.After(1 * time.Second)
    println(i)
}
Run Code Online (Sandbox Code Playgroud)

经过多行"+1"后,输出正好符合预期.

go goroutine

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

如何从HomeBrew中删除浅层克隆警告

?  ~ brew info test 
Error: No available formula with the name "test" 
==> Searching for a previously deleted formula...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
Run Code Online (Sandbox Code Playgroud)

我之前修改了git远程地址以反映自制程序的地址.也许它与此相关,但我不知道.

git homebrew

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

为什么 TensorBoard 摘要没有更新?

我使用带有 pytorch1.1 的 tensorboard 来记录损失值。

writer.add_scalar("loss", loss.item(), global_step)在每个 for- 循环体中使用。

但是,在训练处理期间绘图图不会更新。

每次想看到最新的损失,都得重启tensorboard服务器。

代码在这里

import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets, transforms

# Writer will output to ./runs/ directory by default
writer = SummaryWriter()

transform = transforms.Compose(
    [transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]
)
trainset = datasets.MNIST("mnist_train", train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
model = torchvision.models.resnet50(False)
# Have ResNet model take in grayscale rather than RGB
model.conv1 …
Run Code Online (Sandbox Code Playgroud)

tensorflow tensorboard pytorch

5
推荐指数
2
解决办法
5169
查看次数

如何理解goroutine的这种行为?

package main
import (  
    "fmt"
    "time"
)
type field struct {  
    name string
}
func (p *field) print() {  
    fmt.Println(p.name)
}
func main() {  
    data := []field{ {"one"},{"two"},{"three"} }
    for _,v := range data {
        go v.print()
    }
    <-time.After(1 * time.Second)
}
Run Code Online (Sandbox Code Playgroud)

为什么此代码以任何顺序打印 3 “三”而不是“一”“二”“三”?

go goroutine

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

如何设置 GNU make 在 macos 上使用 gcc 默认值?

objects = main.o kbd.o command.o display.o \
        insert.o search.o files.o utils.o

edit : $(objects)
        cc -o edit $(objects)

main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h

.PHONY : clean
clean :
        rm edit $(objects)
Run Code Online (Sandbox Code Playgroud)

这是来自 GNU make 的示例 makefile。它说 make 将使用简单的规则生成具有匹配名称的 *.c 文件的 *.o 文件。

但是,在我的 mac 上,默认使用 clang,我希望它默认使用 gcc-7,以防某些项目在使用 clang 编译时出错。

macos gcc gnu-make

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

标签 统计

go ×2

goroutine ×2

gcc ×1

git ×1

gnu-make ×1

homebrew ×1

macos ×1

pytorch ×1

tensorboard ×1

tensorflow ×1