小编Sal*_*ali的帖子

为什么tf.assign()会减慢执行时间?

今天我在Tensorflow中为我的LSTM添加学习率衰减.

我改变

train_op = tf.train.RMSPropOptimizer(lr_rate).minimize(loss)
Run Code Online (Sandbox Code Playgroud)

lr = tf.Variable(0.0,trainable=False)
Run Code Online (Sandbox Code Playgroud)

并运行每一个火车步骤

sess.run(tf.assign(lr, lr_rate*0.9**epoch))
Run Code Online (Sandbox Code Playgroud)

但是,这种变化会将执行时间从大约7分钟增加到大约20分钟.

我的问题是:为什么这种改变会增加执行时间?

一个明显的解决方法是每1000次迭代只进行一次分配.但是,我想了解这背后的原因.

  • sess.run()需要额外的时间吗?
  • tf.asign()需要额外的时间吗?
  • 我可以用另一种更高效的方式实现这个tf.assign()吗?

tensorflow

0
推荐指数
1
解决办法
2021
查看次数

是否存在时间复杂度为O(n*(log n)^ 2)的算法?

我知道heapsort的时间复杂度为O(n log n),但我真的不能想到一个具有O(n(log n)2)的算法.

algorithm complexity-theory big-o

0
推荐指数
1
解决办法
141
查看次数

假设特定结构上的json.Marshall不可能失败是否安全?

我已经读过这个问题,询问json.Marshal是否可以在任何输入上失败,并根据我的情况看起来的答案,它不会失败.我的情况如下:

我有一个特定的结构(没有嵌套,没有数组,只是字符串,各种类型的整数,bools).我需要把它整理成一个json.它会失败吗?

在更具体的例子中:

type some struct {
    F1 string `json:"f1"`
    F2 uint32 `json:"f2"`
    F3 int64  `json:"f3"`
    F4 bool   `json:"f4"`
}

func doSomething(s some) (string, error) {
    data, err := json.Marshal(s)
    if err != nil {
        return "", err
    }
    return string(data), nil
}
Run Code Online (Sandbox Code Playgroud)

可能doSomething会失败吗?如果是,请提供意见,否则解释原因.根据我目前的知识,它不能.

go

0
推荐指数
1
解决办法
119
查看次数

如何在亚马逊ec2上部署Go程序而不在ec2上编译它?

我正在寻找一种在亚马逊ec2上部署go二进制文件的方法.目前,所有我发现教程(1,2)在解释如何继续EC2旅途来源和他们那里编译.

由于几个原因,这不是我想要的.其中:

  • 我不想复制所有来源
  • 我不想安装不相关的二进制文件(去编译器和其他东西)

在我看来,这是不必要的,因为go具有交叉编译二进制文件的能力.我认为在本地构建二进制文件并将其上传到ec2更好.

我在这里遗漏了什么,我的方法有任何隐藏的陷阱还是有更好的方法?

PS如果这个问题更适合服务器故障,请让我知道或移动它.

deployment amazon-ec2 go

0
推荐指数
1
解决办法
216
查看次数

为什么我在BASH中的比较不起作用?

我想比较BASH中的一些字符

read a
if (($a == "Y"))
then
    echo "YES"
elif (($a == "y"))
then
    echo "YES"
else
    echo "NO"
fi
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,它没有按预期工作.它总是输出YES.看着这个超级简单的脚本,我无法理解什么是错的.

bash

-1
推荐指数
1
解决办法
84
查看次数

求出(N!)^ 2的除数

我试图解决以下问题,我将其简化为: 找到(N!)^ 2的除数

我编写了我的解决方案,我在这里作为答案包含在内(因为没有被指责不做任何工作),并且即使是大数字也能正常快速地工作,但因为它没有通过所有的测试超时,我认为我的算法效率不高.

这是我的想法的概述:

  1. 任何数字都可以表示为a0^b1*a1^b1*...*an^bn具有(1 + b1)*(1 + b2)*...*(1 + bn)除数
  2. 然后M^2将有(1 + 2b1)*(1 + 2b2)*...*(1 + 2bn)除数
  3. 创建一个函数,查找数字的所有因子并将它们保存为hashmap
  4. 有一个函数,它将通过添加相应键的值来组合两个哈希映射
  5. 使用这两个函数迭代从2到n的所有数字,得到所有阶乘的除数
  6. 使用1.中的函数来得到答案

我认为这个解决方案非常有效,但看起来有更好的方法.谁能建议我一个更好的方法?

python algorithm math

-1
推荐指数
1
解决办法
230
查看次数

Go编译器是否足够智能以获得微优化?

我很好奇使用微优化是否合理

  • a / 2a >> 1当a为整数
  • a * 2 VS a << 1
  • a % 2 VS a & 1
  • 和其他一些像这样的人

我知道任何体面的C编译器都能很好地处理这个问题.另外请不要写关于过早优化,因为这些技术是如此明显,甚至不是优化,更像是喜欢如何编写代码.

PS我尝试做基准测试,时间上的差异没有统计学意义.我不知道如何检查go的字节码,所以谢谢你的指点.

go

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

为什么浮子和整数=南?在去

package main

import (
    "fmt"
    "math"
)

func main() {
    // x= +- sqrtB-4ac/2a
    cal()
}

func cal() {
    b := 3
    a := 4
    c := 2
    b2 := float64(b*b)
    ac := float64(4)*float64(a)*float64(c)
    q := math.Sqrt(b2-ac)
    fmt.Print(q)
}
Run Code Online (Sandbox Code Playgroud)

这将输出NaN,但为什么.我正在尝试制作二次计算器.我想要的就是输出数字.

go

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