静态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
我需要非常快(最快)的随机发生器.我从英特尔发现了这个:快速英特尔随机数发生器
看起来不错.所以我在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) 我使用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)没有异常发生之后是第一行,我们不会中止线程).如何将其锁定为零并锁定?
以下代码将使用默认的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的代码)?
我在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的意义是什么,这有助于对齐,如何?
我想打印当前变量梯度值以及所有变量的名称。
我正在使用以下代码:
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) 我知道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) 我只是想测试神经网络近似乘法函数(回归任务)的效果如何。我正在使用 Azure 机器学习工作室。我有 6500 个样本,1 个隐藏层(每个隐藏层我测试了 5 /30 /100 个神经元),没有标准化。默认参数 学习率 - 0.005,学习迭代次数 - 200,初始学习权重 - 0.1,动量 - 0 [描述]。我的准确度非常差,接近 0。 同时,增强决策森林回归显示出非常好的近似值。
我究竟做错了什么?这个任务对于 NN 来说应该很容易。
我用两个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
c++ ×3
.net ×2
c# ×2
tensorflow ×2
arrays ×1
azure-machine-learning-service ×1
c ×1
c++11 ×1
locking ×1
msbuild ×1
numpy ×1
python ×1
random ×1
regression ×1
scipy ×1
simd ×1
sse ×1
statistics ×1
winapi ×1