小编Bra*_* Ds的帖子

代码分析改进

静态CA使解决方案构建变得更慢.在我的情况下>比没有CA慢2倍.我们可以禁用它,但这是失去力量的坏决定.所以,我们能做些什么?

首先让我们看看CA的工作原理.

你建立解决方案.在每个项目构建之后,msbuild编译目标fxcopcmd.exe被调用,其中包含应该分析的程序集的路径.fxcopcmd.生成由VS(或可能是输出流)使用的CA xml日志.fxcopcmd.exe加载程序集(快速)并同步分析它,因此只加载一个CPU而3个(在我的情况下)什么都不做.只有在CA完成后,才会构建项目依赖关系链中的下一个项目.

因此,CA中的弱点是我们可以改进它 - 强制它并行工作以使用所有CPU.

我看到这样的解决方案

要制作将从MSBUILD中获取参数的假fxcopcmd.exe,请记住它并立即向msbuild报告一切正常并且没有错误(通过CA xml.log或成功文件,或者可能是流..).所以MSBUILD将构建下一个项目,那时我们将使用保存的参数调用真正的fxcopcmd.exe ...如果MSBUILD将在下一个项目中调用fxcopcmd.exe - 我们将再次调用fxcopcmd.exe ...所以会有很少有加载所有CPU的进程.真正的fxcopcmd.exe完成后我们可以调用我们的MSBUILD目标,它将从microsoft.common.targtets只调用CA目标而没有编译,我们的假fxcopcmd.exe会立即报告结果(CA在那时完成,我们有日志)到MSBUILD-VS.

你怎么看?这会加速CA吗?为什么Microsoft没有在CA中创建这样的人员并且只使用一个CPU?

.net msbuild code-analysis visual-studio static-code-analysis

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

使用快速英特尔随机生成器(SSE2)失败,堆栈周围...已损坏

我需要非常快(最快)的随机发生器.我从英特尔发现了这个:快速英特尔随机数发生器

看起来不错.所以我在MS Visual Studio 2013上创建了项目:

//FastRandom.h:
#pragma once
#include "emmintrin.h"
#include <time.h>
//define this if you wish to return values similar to the standard rand();
#define COMPATABILITY

namespace Brans
{
        __declspec(align(16)) static __m128i cur_seed;

        // uncoment this if you are using intel compiler
        // for MS CL the vectorizer is on by default and jumps in if you
        // compile with /O2 ...
        //#pragma intel optimization_parameter target_arch=avx
        //__declspec(cpu_dispatch(core_2nd_gen_avx, core_i7_sse4_2, core_2_duo_ssse3, generic )
        inline void rand_sse(unsigned int* result)
        {
            __declspec(align(16)) …
Run Code Online (Sandbox Code Playgroud)

c++ random sse simd

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

锁定损坏?魔术僵局?

我使用multethreading bug.现在我看到由于某种原因锁定甚至一次都没有执行但是被锁定了.我有下一堂课:

public sealed class Foo
{
       private readonly object _lock = new object();
       private static ulong _inCnt = 0;

    public void SomeMethod(ulong poo)
    {
        lock (_lock)
        {
           _inCnt++;
           ... [some code]
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

我暂停了VS中的所有线程,检查了所有线程,看到只有一个线程SomeMethod,它正在等待lock (_lock)被释放(_inCnt = 0).我恢复线程,等待一段时间,暂停线程并看到相同的图片,同样(并且只有一个)线程仍在等待lock (_lock)进入SomeMethod并且_inCnt为零!但是如果锁定将会是一个或多个(_inCnt++lock (_lock)没有异常发生之后是第一行,我们不会中止线程).如何将其锁定为零并锁定?

.net c# multithreading locking

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

假设分布未知,根据样本数据计算置信区间

我有一些样本数据,我想计算其置信区间,假设分布不正常且未知。基本上,看起来分布是帕累托分布。分布直方图但我不确定。

正态分布的答案:

根据样本数据计算置信区间

使用 scipy 获取置信区间的正确方法

python statistics numpy scipy confidence-interval

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

如何在不初始化每个元素的情况下为数组保留空间?

以下代码将使用默认的Foo构造函数构造10个Foo对象的数组:

Foo foo[10];
Run Code Online (Sandbox Code Playgroud)

但我不想这样做,我有havy foo构造函数,后来我将逐个重新生成所有foo对象并将其分配(复制)到foo数组的元素,所以没有意义初始化数组,我想要保留空间,并在以后设置元素.就像在的情况一样

int foo[10]
Run Code Online (Sandbox Code Playgroud)

当没有= {}时,foo的元素不会被初始化.如何在不使用std命名空间的情况下执行此操作(我将在PC和CUDA上使用不支持std的代码)?

c++ arrays c++11

4
推荐指数
2
解决办法
2712
查看次数

将PVOID缓冲区转换为PCHAR的意义何在?

我在MS代码示例中看到了下一个代码:

PVOID alignedBuffer[BUFFER_SIZE/sizeof( PVOID )];
PCHAR buffer = (PCHAR) alignedBuffer;

hResult = FilterSendMessage( context->Port,
                                 &commandMessage,
                                 sizeof( COMMAND_MESSAGE ),
                                 buffer,
                                 sizeof(alignedBuffer),
                                 &bytesReturned );
Run Code Online (Sandbox Code Playgroud)

(alignedBuffer将保存作为重放传递给FilterSendMessage调用的结构数组)将PVOID转换为PCHAR的意义是什么,这有助于对齐,如何?

c c++ memory-alignment

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

如何在 TensorFlow 中使用变量名称打印当前变量梯度值?

我想打印当前变量梯度值以及所有变量的名称。

我正在使用以下代码:

import tensorflow as tf
import numpy as np

x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

W = tf.Variable(tf.random_uniform([1], -1.0, 1.0), name = "Wvar")
b = tf.Variable(tf.zeros([1]), name = "Bvar")
y = W * x_data + b

loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
grads_and_vars = optimizer.compute_gradients(loss)

train = optimizer.apply_gradients(grads_and_vars)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

for step in range(201):
     sess.run(train)
     if step % 50 == 0:
       for gv in grads_and_vars:
            print(str(sess.run(gv[0])) + " …
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

如何将特定的NTSTATUS值转换为Hresult?

我知道NTSTATUS,我将在特定错误的情况下获得,但我得到了hresult,而不是来自pinvoke的ntstatus.那么如何将特定的NTSTATUS值转换为Hresult.

我试过没有成功:

class Program
{
    private const int FacilityNtBit = 0x10000000;

    //#define STATUS_DUPLICATE_OBJECTID        ((NTSTATUS)0xC000022AL)
    private const int STATUS_DUPLICATE_OBJECTID = unchecked((int) (0xC000022A));

    // HResult that is returned for the STATUS_DUPLICATE_OBJECTID
    private const int CorrectHrStatusDuplicateObjectid = -2147019886;

    static void Main(string[] args)
    {
        int res = HRESULT_FROM_NT(STATUS_DUPLICATE_OBJECTID);
        Debug.Assert(res == CorrectHrStatusDuplicateObjectid, "Must be the same");
    }

    private static int HRESULT_FROM_NT(int ntStatus)
    {
        //#define HRESULT_FROM_NT(x)      ((HRESULT) ((x) | FACILITY_NT_BIT))
        return ntStatus | FacilityNtBit;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# winapi

3
推荐指数
4
解决办法
3593
查看次数

无法近似具有 1 个隐藏层的神经网络中的简单乘法函数

我只是想测试神经网络近似乘法函数(回归任务)的效果如何。我正在使用 Azure 机器学习工作室。我有 6500 个样本,1 个隐藏层(每个隐藏层我测试了 5 /30 /100 个神经元),没有标准化。默认参数 学习率 - 0.005,学习迭代次数 - 200,初始学习权重 - 0.1,动量 - 0 [描述]。我的准确度非常差,接近 0。 同时,增强决策森林回归显示出非常好的近似值。

我究竟做错了什么?这个任务对于 NN 来说应该很容易。

neural-network deep-learning azure-machine-learning-service

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

为什么深NN不能逼近简单的ln(x)函数?

我用两个RELU隐藏层+线性激活层创建了ANN,并试图逼近简单的ln(x)函数.我不能做到这一点.我很困惑,因为x:[0.0-1.0]范围内的lx(x)应该没有问题地近似(我使用学习率0.01和基本梯度下降优化).

import tensorflow as tf
import numpy as np

def GetTargetResult(x):
    curY = np.log(x)
    return curY

# Create model
def multilayer_perceptron(x, weights, biases):
    # Hidden layer with RELU activation
    layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'])
    layer_1 = tf.nn.relu(layer_1)
    # # Hidden layer with RELU activation
    layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2'])
    layer_2 = tf.nn.relu(layer_2)

    # Output layer with linear activation
    out_layer = tf.matmul(layer_2, weights['out']) + biases['out']
    return out_layer

# Parameters
learning_rate = 0.01
training_epochs = 10000
batch_size = 50
display_step = 500 …
Run Code Online (Sandbox Code Playgroud)

regression neural-network gradient-descent deep-learning tensorflow

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