小编nem*_*emo的帖子

如何从golang中的reflect.Value获取基础值?

所以我找到了一些代码来帮助我开始使用Go(golang)中的反射,但是我在获取基础值时遇到了麻烦,因此我基本上可以map[string]string从结构和它的字段创建一个.

最后,我想把结果变成一个map[string]interface{},但这个问题有点阻碍我.

我现在的代码:

package main

import (
    "fmt"
    "reflect"
)

type Foo struct {
    FirstName string `tag_name:"tag 1"`
    LastName  string `tag_name:"tag 2"`
    Age       int  `tag_name:"tag 3"`
}

func inspect(f interface{}) map[string]string {

    m := make(map[string]string)
    val := reflect.ValueOf(f).Elem()

    for i := 0; i < val.NumField(); i++ {
        valueField := val.Field(i)
        typeField := val.Type().Field(i)

        f := valueField.Interface()
        val := reflect.ValueOf(f)
        m[typeField.Name] = val.String()
    }

    return m
}

func dump(m map[string]string) {

    for k, v := range m …
Run Code Online (Sandbox Code Playgroud)

reflection go

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

通过os/exec在另一个用户下运行外部命令

使用该os/exec包,我想代表另一个用户在*nix OS上运行外部命令(当然是在具有su权限的另一个用户的root用户下运行进程)

我想避免使用"su"或"bash"命令,并将其与go完全一致.

我使用了一个方法,syscall.Setuid但这会将用户更改为主项目,我只需要将用户更改为外部子进程:

func (self *Command) LoseTo(username string) {
   u, err := user.Lookup(username)
   if err != nil {
      fmt.Printf("%v", err)
   }

   uid, err := strconv.Atoi(u.Uid)
   if err := syscall.Setuid(uid); err != nil {
      fmt.Printf("%v", err)
   }
}
Run Code Online (Sandbox Code Playgroud)

sudo exec go

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

Keras | 让Inception v3示例运行

我正在尝试学习一些Keras语法并使用Inception v3示例

我有一个4级多类分类玩具问题,所以我从示例中更改了以下几行:

NB_CLASS = 4  # number of classes
DIM_ORDERING = 'tf'  # 'th' (channels, width, height) or 'tf' (width, height, channels)
Run Code Online (Sandbox Code Playgroud)

我的玩具数据集具有以下尺寸:

  • 包含所有图像的数组大小:(595,299,299,3)
  • 包含训练图像的阵列大小:(416,299,299,3)
  • 包含训练标签的阵列大小:(179,4)
  • 包含测试图像的数组大小:(179,299,299,3)
  • 包含测试标签的数组大小:(179,4)

然后我尝试使用以下代码训练模型:

# fit the model on the batches generated by datagen.flow()
#  https://github.com/fchollet/keras/issues/1627
#    http://keras.io/models/sequential/#sequential-model-methods
checkpointer = ModelCheckpoint(filepath="/tmp/weights.hdf5", verbose=1, save_best_only=True)
model.fit_generator(datagen.flow(X_train, Y_train,
                batch_size=32),
                nb_epoch=10,
                samples_per_epoch=32,
                class_weight=None, #classWeights,
                verbose=2,
                validation_data=(X_test, Y_test),
                callbacks=[checkpointer])
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

Exception: The model expects 2 input arrays, but only received one array. Found: array with shape (179, 4)` …
Run Code Online (Sandbox Code Playgroud)

python keras

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

过滤pytorch张量中的数据

我有一个X像的张量[0.1, 0.5, -1.0, 0, 1.2, 0],我想实现一个名为 的函数filter_positive(),它可以将正数据过滤成一个新的张量并返回原始张量的索引。例如:

new_tensor, index = filter_positive(X)

new_tensor = [0.1, 0.5, 1.2]
index = [0, 1, 4]
Run Code Online (Sandbox Code Playgroud)

如何在 pytorch 中最有效地实现此功能?

python pytorch

15
推荐指数
2
解决办法
7846
查看次数

用pytorch中的填充重塑张量

我有一个尺寸张量(30, 35, 49).我想重新塑造它(30, 35, 512),以便能够与另一个具有形状的张量相乘(30, 35, 512).

我想在(30, 35, 49)尺寸上对张量进行填充以使其具有(30, 35, 512)尺寸.

如何才能做到这一点?

pytorch

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

去RoundTripper和运输

我很难理解我们RoundTripper在Go中需要什么.

https://golang.org/pkg/net/http/#RoundTripper

解释TransportGo中的默认值:

var DefaultTransport RoundTripper = &Transport{
       Proxy: ProxyFromEnvironment,
       Dial: (&net.Dialer{
               Timeout:   30 * time.Second,
               KeepAlive: 30 * time.Second,
       }).Dial,
       TLSHandshakeTimeout: 10 * time.Second,
}
Run Code Online (Sandbox Code Playgroud)

但是RoundTripper和之间的区别是什么:

transport := &http.Transport{
    Proxy:                 http.ProxyFromEnvironment,
    TLSHandshakeTimeout:   timeout,
    Dial:              dialfunc,
    DisableKeepAlives: true,
}
Run Code Online (Sandbox Code Playgroud)

我的问题:RoundTripper与常规不同Transport

http go roundtrip itmstransporter

13
推荐指数
1
解决办法
7304
查看次数

使用keras的句子相似度

我正在尝试使用STS数据集基于这项工作实现句子相似性架构.标签是从0到1的归一化相似度分数,因此假设它是回归模型.

我的问题是损失直接NaN从第一个时代开始.我究竟做错了什么?

我已经尝试更新到最新的keras和theano版本.

我的模型的代码是:

def create_lstm_nn(input_dim):
    seq = Sequential()`
    # embedd using pretrained 300d embedding
    seq.add(Embedding(vocab_size, emb_dim, mask_zero=True, weights=[embedding_weights]))
    # encode via LSTM
    seq.add(LSTM(128))
    seq.add(Dropout(0.3))
    return seq

lstm_nn = create_lstm_nn(input_dim)

input_a = Input(shape=(input_dim,))
input_b = Input(shape=(input_dim,))

processed_a = lstm_nn(input_a)
processed_b = lstm_nn(input_b)

cos_distance = merge([processed_a, processed_b], mode='cos', dot_axes=1)
cos_distance = Reshape((1,))(cos_distance)
distance = Lambda(lambda x: 1-x)(cos_distance)

model = Model(input=[input_a, input_b], output=distance)

# train
rms = RMSprop()
model.compile(loss='mse', optimizer=rms)
model.fit([X1, X2], y, validation_split=0.3, batch_size=128, nb_epoch=20) …
Run Code Online (Sandbox Code Playgroud)

python sentence-similarity keras

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

使用tensorflow调试keras中间层或目标变量

我正在编写一个自定义目标来训练Keras(带有tensorflow后端)模型,但我需要调试一些中间计算.为简单起见,假设我有:

def custom_loss(y_pred, y_true):
    diff = y_pred - y_true
    return K.square(diff)
Run Code Online (Sandbox Code Playgroud)

我无法找到一种简单的方法来访问,例如,在训练期间中间变量diff或其形状.在这个简单的例子中,我知道我可以返回diff来打印它的值,但是我的实际损失更复杂,我不能在没有编译错误的情况下返回中间值.

有没有一种简单的方法来调试Keras中的中间变量?

debugging keras tensorflow

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

使用gofmt重构工具重命名全局变量

我正在尝试gofmt重构的工具功能基于这篇博文的代码,我有这个简单的例子:

package main

import (
    "fmt"
)

var v = 12

func main() {
    fmt.Println(v)
}
Run Code Online (Sandbox Code Playgroud)

我试图重新命名v变量来m应用这个食谱:

gofmt -r 'v -> m' -w main.go
Run Code Online (Sandbox Code Playgroud)

重构后的代码看起来(破碎)像:

package m

import (
    "fmt"
)

var m = m

func m() {
    m
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

refactoring go

11
推荐指数
1
解决办法
2903
查看次数

在Raspberry Pi上使用哪个包来使用GPIO?

如何使用go语言读取Raspberry Pi的GPIO上的温度传感器值?

拜托,有人帮帮我.

提前致谢.

go gpio

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