小编Lak*_*arg的帖子

Tensorflow何时更新权重和偏差?

tensorflow何时更新for循环中的权重和偏差?

下面是来自tf的github的代码.mnist_softmax.py

for _ in range(1000):
    batch_xs, batch_ys = mnist.train.next_batch(100)
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
Run Code Online (Sandbox Code Playgroud)
  1. 张量流何时更新权重和偏差?
  2. 它在运行时是否更新它们sess.run()?如果是这样,在这个程序中,是否意味着更新权重和偏差1000倍?
  3. 或者在完成整个for循环后更新它们?
  4. 如果2.是正确的,我的下一个问题是,每次都使用不同的训练数据来更新模型(因为它使用了next_batch(100).总共有1000*100个训练数据点.但是所有数据点只考虑一次我是否正确或是否误解了某些事情?
  5. 如果3.是正确的,那么在经过一次更新步骤后,模型是否经过训练是否很奇怪?我想我一定是在误解一些东西,如果有人能给我一些提示或者提一些材料,那真的很棒.

python tensorflow

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

使用 GCC 编译 C 代码

我在Windows 8 笔记本电脑上安装了 MinGW并尝试编译一个 C 代码文件

gcc test.c -o test.exe
Run Code Online (Sandbox Code Playgroud)

编译器没有给出警告或错误,但它没有创建 test.exe

我如何让编译器创建文件

测试.c

测试.c

我的终端会话 这是我在终端上试过的

一个有趣的观察:

当我故意在代码中引入错误并尝试编译时编译器显示错误

有错误的代码 在此处输入图片说明 编译器输出 在此处输入图片说明

当我尝试使用命令提示符编译相同的代码时

这是它显示的 在此处输入图片说明

但该文件确实存在于 MinGW\bin 目录中 在此处输入图片说明

我移动了

test.c
Run Code Online (Sandbox Code Playgroud)

归档到

C:\
Run Code Online (Sandbox Code Playgroud)

并在

C:\MinGW\bin
Run Code Online (Sandbox Code Playgroud)

目录

这是它的输出 在此处输入图片说明

问题部分解决:

我在 Windows 8 中禁用了混合启动并重新启动了计算机。编译器现在可以在命令提示符中运行,但不能在 PowerShell 中运行。

c gcc compiler-errors

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

如何升级巴泽尔?

我成功构建了 bazel-0.4.0。
然后,我试了一下升级到最新版本巴泽尔-0.5.1使用

$ ./compile.sh compile ../bazel-0.4.0/output/bazel.exe
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,bazel-0.5.0bazel-0.4.5给了我同样的错误

错误日志:

$ ./compile.sh compile ../bazel-0.4.0/output/bazel.exe  
 Building Bazel with Bazel.  
ERROR: Illegal javabase value 'C:/Program Files/Java/jdk', javabase must be an absolute path or label.  
INFO: Elapsed time: 0.246s  
ERROR: Could not build Bazel
Run Code Online (Sandbox Code Playgroud)

bazel-0.4.4 给了我不同的错误

错误日志:

 Building Bazel with Bazel.  
.ERROR: no such target '//:Files/Java/jdk': target 'Files/Java/jdk' not declared in package '' defined by C:/Users/potlapel/Downloads/bazel-0.4.4/BUILD.  
INFO: Elapsed time: 0.182s  
ERROR: Could not build Bazel
Run Code Online (Sandbox Code Playgroud)

failed-installation bazel

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

如何在C++中定义512位整数?

我试图将两个64位整数相乘并得到错误 - 当我尝试将产品存储在uint512_t数据类型中时,uint512_t未在此范围内声明.是否有可用于存储此类巨大值的替代数据类型?我的数组包含我想要乘以的数字的数字.

#include <cstdint>
#include <iostream>
#include <stdint.h>
using namespace std;

int multiply(int x, int y, int carry)
{
    int product;
    product = x * y + carry;
    return product;
}

int add(int multiplier, int product_current, int product_new)
{
    product_current = product_current + multiplier * product_new;
    return product_current;
}

int main()
{
    int a[64] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, …
Run Code Online (Sandbox Code Playgroud)

c++

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

验证方法体中是否使用了方法参数

我有一个界面,如下所示

interface Evaluator {
    boolean requiresP2();
    EvalResult evaluate(Param1 p1, Param2 p2, Param3 p3);
    // some more methods
}
Run Code Online (Sandbox Code Playgroud)

该接口由几个类实现.p2evaluate方法的参数由某些人使用,而其他人则不使用.该方法requiresP2基本上返回一个布尔值,告知evaluate方法是否使用p2.

现在,这些问题在上下文中可能看起来有点奇怪,但请相信我,这在我们的用例中是有意义的.另外,重构所有代码需要花费大量时间来消除对requiresP2方法的需求,所以如果我们讨论除了自上而下的代码库重构之外的其他解决方案,我将不胜感激.

问题是方法的返回值requiresP2取决于evaluate方法的实现方式.因此,每个人都必须确保requiresP2在更改方法时更新evaluate方法.

我正在寻找方法,以便这可以由编译器/单元测试/ linters强制执行,而不是将它留给开发人员的内存.

编辑:我仍在探索模拟框架对此问题的适用性.

我认为我可以在单元测试中反映在单元测试中检查它evaluate的主体以检查它是否引用p2然后确保它与requiresP2方法返回的值匹配但似乎无法检查方法体使用反射.

我正在寻找关于如何做到这一点的建议.任何输入都表示赞赏.

java reflection unit-testing linter

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