小编Mon*_*all的帖子

何时使用const void*?

我有这个非常简单的测试函数,我正在使用它来弄清楚const限定符发生了什么.

int test(const int* dummy)
{
   *dummy = 1;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个问题让我对GCC 4.8.3产生了错误.然而这个编译:

int test(const int* dummy)
{
   *(char*)dummy = 1;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

因此,似乎const限定符只有在我使用参数而不转换为其他类型时才有效.

最近我见过使用的代码

test(const void* vpointer, ...)
Run Code Online (Sandbox Code Playgroud)

至少对我来说,当我使用void*时,我倾向于将它转换为char*以用于堆栈中的指针算法或跟踪.const void*如何阻止子程序函数修改vpointer指向的数据?

c pointers type-safety

32
推荐指数
2
解决办法
2万
查看次数

ModuleNotFoundError:没有名为 aws_cdk 的模块

当我运行时cdk deploy,出现以下错误:

Traceback (most recent call last):
  File "app.py", line 3, in <module>
    from aws_cdk import core
ModuleNotFoundError: No module named 'aws_cdk'
Run Code Online (Sandbox Code Playgroud)

我用 npm 安装了 cdk

npm install -g aws-cdk
Run Code Online (Sandbox Code Playgroud)

我通过以下方式激活了虚拟环境

source .env/bin/activate
Run Code Online (Sandbox Code Playgroud)

我使用的是python3.8。我安装了 aws_cdk 依赖项

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

编辑 python 文件时,我能够导入 aws_cdk 并成功运行各个函数。我认为问题在于目录cdk/usr

> which cdk
/usr/local/bin/cdk
Run Code Online (Sandbox Code Playgroud)

我认为它使用的是我的 python/usr/bin而不是虚拟环境。如何让 cdk 在我的虚拟环境中使用 python?

编辑:

要求.txt

-e .
Run Code Online (Sandbox Code Playgroud)

python python-venv aws-cdk

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

np.add.at用数组索引

我正在研究cs231n,我很难理解这个索引是如何工作的.鉴于

x = [[0,4,1], [3,2,4]]
dW = np.zeros(5,6)
dout = [[[  1.19034710e-01  -4.65005990e-01   8.93743168e-01  -9.78047129e-01
            -8.88672957e-01  -4.66605091e-01]
         [ -1.38617461e-03  -2.64569728e-01  -3.83712733e-01  -2.61360826e-01
            8.07072009e-01  -5.47607277e-01]
         [ -3.97087458e-01  -4.25187949e-02   2.57931759e-01   7.49565950e-01
           1.37707667e+00   1.77392240e+00]]

       [[ -1.20692745e+00  -8.28111550e-01   6.53041092e-01  -2.31247762e+00
         -1.72370321e+00   2.44308033e+00]
        [ -1.45191870e+00  -3.49328154e-01   6.15445782e-01  -2.84190582e-01
           4.85997687e-02   4.81590106e-01]
        [ -1.14828583e+00  -9.69055406e-01  -1.00773809e+00   3.63553835e-01
          -1.28078363e+00  -2.54448436e+00]]]
Run Code Online (Sandbox Code Playgroud)

他们做的操作是

np.add.at(dW, x, dout)

x是二维数组.索引如何在这里工作?我浏览了np.ufunc.at文档,但他们有一个简单的例子,有1d数组和常量:

np.add.at(a, [0, 1, 2, 2], 1)
Run Code Online (Sandbox Code Playgroud)

numpy python-3.x numpy-ufunc

7
推荐指数
2
解决办法
6222
查看次数

tf.variable与tensorflow中的tf.constant

我运行以下代码

 W = tf.Variable(tf.zeros([1, 3]), dtype=tf.float32, name="W")
 B = tf.constant([[1, 2, 3]], dtype=tf.float32, name="B")
 act = tf.add(W, B)
 init = tf.global_variables_initializer()
 with tf.Session() as sess:
     sess.run(init)
     sess.run(act)
     writer = tf.summary.FileWriter("./graphs", sess.graph)
 writer.close()
Run Code Online (Sandbox Code Playgroud)

并用tensorboard验证它:

在此输入图像描述

令我困惑的是read操作和之前的操作,表示为(W).当内部具有所有这些操作节点时,常量B直接指向操作.这是我的问题:Addtf.variable

  1. 什么是(W)操作?常数B是一个常数圆,表示一个常数.椭圆形节点表示操作节点.(W)似乎没有任何操作,但它用相同的椭圆形节点表示?该节点的工作是什么?

  2. Addnode显式读取(W)带有read操作的节点,而不是常量节点B.为什么read变量节点需要?

tensorflow tensorboard

6
推荐指数
1
解决办法
3179
查看次数

映射python2与python3

我是初学python用户,我在python2.7和python3.4.3上运行了以下代码

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats

alpha = 1
n = 100

u = stats.uniform(0,1)
F_inverse = lambda u: 1/alpha*np.log(1/(1-u))
v = np.array(map(F_inverse, u.rvs(n)))
print(v)

fig, ax = plt.subplots(1,1)
stats.probplot(v, (1,), dist='expon', plot=ax)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在python2上我得到一个像这样的好数组:

array([  2.29133808e+00,   1.63236151e+00,   6.77776227e-01,
         3.33668250e-01,   1.77830890e+00,   3.06193068e-01,
         2.10677775e+00,   1.30525788e-01,   2.97056775e-01,
                           ...
         1.31463775e+00,   1.41840428e-03,   8.60594737e-01,
         1.80644880e-01])
Run Code Online (Sandbox Code Playgroud)

在python3上,我得到这个:

array(<map object at 0x7f8aab6f3ef0>, dtype=object)
Run Code Online (Sandbox Code Playgroud)

如果我改变了这个:

v = np.array(map(F_inverse, u.rvs(n)))
Run Code Online (Sandbox Code Playgroud)

v = list(map(F_inverse, u.rvs(n)))
Run Code Online (Sandbox Code Playgroud)

它在两者上工作正常,但我想要使用数组.有没有办法让这个与np.array一起使用?

python arrays numpy higher-order-functions python-3.x

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

如何获取tensorflow RNN的摘要信息

我使用tensorflow实现了一个简单的RNN,如下所示:

cell = tf.contrib.rnn.BasicRNNCell(state_size)
cell = tf.contrib.rnn.DropoutWrapper(cell, output_keep_prob=keep_prob)

rnn_outputs, final_state = tf.nn.dynamic_rnn(cell, batch_size, dypte=tf.float32)
Run Code Online (Sandbox Code Playgroud)

这很好用.但是我想将权重变量记录到摘要编写器中.有没有办法做到这一点?

顺便问一下,我们使用tf.nn.rnn_cell.BasicRNNCelltf.contrib.rnn.BasicRNNCell?还是他们一模一样?

machine-learning neural-network tensorflow recurrent-neural-network tensorboard

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

升级 aws-cdk 导致 ENOENT 错误

我已经安装了 cdk 并且工作正常。当我尝试通过运行来更新它时

sudo npm install -g aws-cdk@latest

它给了我ENOENT: no such file or directory, chmod '/usr/local/lib/node_modules/aws-cdk/bin/cdk'错误。当我检查路径时,cdk存在所以我不确定为什么它无法找到该文件。

npm 版本:7.5.2

CDK 版本:1.86.0

npm aws-cdk

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

如何在cuda中使用虚拟类?

我编写了一个简单的 cuda 代码来测试是否可以将指针向量复制到 GPU 类。

这就是我所拥有的:

测试.hpp:

class Class {
public:
    Class() {};
    virtual ~Class() {};

    __host__ __device__ int print() { return 42; };
    __host__ __device__ virtual int getClass() const = 0;
};                                                                                                                                                                                       

class AlphaClass : public Class
{
public:
    AlphaClass() {
      className = "Alpha";
      classAvgGrade = 90;
      classSize = 100;
      for(int i = 0; i < classSize; i++){
          classScores.push_back((90+i)%100);
      } 
    };
    ~AlphaClass() { };

    std::string className;
    int classAvgGrade;
    int classSize; 
    std::vector<int> classScores;

    __host__ __device__ void incClassSize(){
        classSize++;
    };

    __host__ …
Run Code Online (Sandbox Code Playgroud)

c++ cuda

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

如何在matplotlib上生成一系列直方图?

我想生成如下所示的一系列直方图:

在此处输入图片说明

上面的可视化是在 tensorflow 中完成的,但我想在 matplotlib 上重现相同的可视化。

编辑:使用@SpghttCd 建议的 plt.fill_between,我有以下代码:

colors=cm.OrRd_r(np.linspace(.2, .6, 10))
plt.figure()
x = np.arange(100)
for i in range(10):
    y = np.random.rand(100)
    plt.fill_between(x, y + 10-i, 10-i, 
                     facecolor=colors[i]
                     edgecolor='w')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这很好用,但是可以使用直方图而不是连续曲线吗?

python matplotlib histogram

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

如何从Python中的不同文件夹导入所有文件

__init__.py在目录中,我能够将其导入

from subdirectory.file import *
Run Code Online (Sandbox Code Playgroud)

但我希望导入该子目录中的每个文件;所以我试过了

from subdirectory.* import *
Run Code Online (Sandbox Code Playgroud)

这不起作用。有什么建议?

python python-import importerror

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

降级tensorflow以使用cuda 8

当我运行tensorflow时,我得到:

ImportError:libcublas.so.9.0:无法打开共享对象文件:没有这样的文件或目录

所以我想降级我的tensorflow-gpu以使用cuda 8.我如何用pip做这个,我应该下载哪个版本?

tensorflow

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

如何在cpp和cuda模块中使用cuda类头文件

我正在尝试在我的设备中创建Color对象.这是我所拥有的简化版本:

Color.hpp中:

class Color { 
public:
    Color(){}
    float r, g, b;
    // other functions
}
Run Code Online (Sandbox Code Playgroud)

test.cu中:

__global__ void runCuda(){
    Color c = Color();
}

int main() {
   runCuda<<<1,1>>>()
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误的说法

不允许从全局函数调用主机函数

所以这很好.我只需要在Color(){}函数前面添加__host__和__device__.

但后来我收到以下错误:

主机没有命名类型

所以根据我的理解,这种情况正在发生,因为我没有用nvcc编译它.问题是我正在使用CMake来构建我的项目.我不太清楚它是如何做到的,但它似乎是用c ++编译器和.cu用nvcc编译器编译.cpp文件.

但在我的设备中,我想创建Color对象.有没有办法在我的CMakefiles或我的代码中解决这个问题?或者我是否需要为所有现有课程创建cuda版本?

c++ cuda

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

什么`twine upload dist/*`命令呢?

我提前道歉,因为这似乎是一个基本问题......

我正在尝试学习使用mujoco(链接在这里),并在其python绑定Makefile里面它有:

upload:
   rm -rf dist
   python setup.py sdist
   twine upload dist/*
Run Code Online (Sandbox Code Playgroud)

是什么twin upload dist/*命令呢?另外,这要求我输入如下用户名和密码:

Uploading distributions to https://pypi.python.org/pypi
Enter your username: guest
Enter your password: 
Uploading mujoco-py-0.5.7.tar.gz
HTTPError: 401 Client Error: You must be identified to edit package information for url: https://pypi.python.org/pypi
Makefile:2: recipe for target 'upload' failed
Run Code Online (Sandbox Code Playgroud)

这是要求我的电脑用户名和密码吗?

python pypi twine

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