小编use*_*878的帖子

Tensorflow:CUDA_VISIBLE_DEVICES似乎不起作用

当我运行我的python脚本时CUDA_VISIBLE_DEVICES=2,Tensorflow仍然显示以下内容:

I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041]创建TensorFlow设备(/ gpu:0) - >(设备:0,名称:Tesla K80,pci总线ID:0000:86:00.0)

因此,我的代码失败并显示以下消息:

无法满足显式设备规范'/ device:GPU:2',因为在此过程中没有注册与该规范匹配的设备; 可用设备:/ job:localhost/replica:0/task:0/cpu:0,/ job:localhost/replica:0/task:0/gpu:0

有人可以解释一下必须发生什么吗?

cuda gpu tensorflow

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

Mac OSx上的OpenCL内核错误

我写了一些OpenCL代码,它在LINUX上工作正常,但它在Mac OSX上失败了.有人可以帮助我找出为什么会发生这些.错误后显示内核代码.我的内核使用double,所以我在顶部有相应的pragma.但我不知道为什么错误显示浮动数据类型:

inline float8 __OVERLOAD__ _name(float8 x) { return _default_name(x); } \
                       ^
/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/3.2/include/cl_kernel.h:4606:30: note: candidate function
__CLFN_FD_1FD_FAST_RELAX(__fast_relax_log, native_log, __cl_log);
                         ^
/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/3.2/include/cl_kernel.h:421:29: 

note: expanded from macro '__CLFN_FD_1FD_FAST_RELAX'
inline float16 __OVERLOAD__ _name(float16 x){ return _default_name(x); }
                        ^
<program source>:206:19: error: call to '__fast_relax_log' is ambiguous
                                    det_zkinin + log((2.0) * 3.14));
              ^~~~~~~~~~~~~~~~~
/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/3.2/include/cl_kernel.h:4608:22: 
note: expanded from macro 'log'
#define log(__x) __fast_relax_log(__x)
                 ^~~~~~~~~~~~~~~~
/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/3.2/include/cl_kernel.h:4606:30: 
note: candidate function
__CLFN_FD_1FD_FAST_RELAX(__fast_relax_log, native_log, __cl_log);
                         ^
/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/3.2/include/cl_kernel.h:416:27: 

note: expanded from macro '__CLFN_FD_1FD_FAST_RELAX'
inline float __OVERLOAD__ _name(float x) { …
Run Code Online (Sandbox Code Playgroud)

debugging macos gpgpu opencl

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

使用多个 GPU OpenCL

我有一个循环,在其中我将多个内核启动到 GPU 上。下面是片段:

for (int idx = start; idx <= end ;idx ++) {

            ret = clEnqueueNDRangeKernel(command_queue, memset_kernel, 1, NULL,
                                            &global_item_size_memset, &local_item_size, 0, NULL, NULL);
            ASSERT_CL(ret, "Error after launching 1st memset_kernel !");


            ret = clEnqueueNDRangeKernel(command_queue, cholesky_kernel, 1, NULL,
                                                    &global_item_size_cholesky, &local_item_size, 0, NULL, NULL);
            ASSERT_CL(ret, "Error after launching 1st cholesky_kernel !");


            ret = clEnqueueNDRangeKernel(command_queue, ckf_kernel1, 1, NULL,
                                            &global_item_size_kernel1, &local_item_size, 0, NULL,  NULL);
            ASSERT_CL(ret, "Error after launching ckf_kernel1[i] !");



            clFinish(command_queue);
            ret = clEnqueueNDRangeKernel(command_queue, memset_kernel, 1, NULL,
                                            &global_item_size_memset, &local_item_size, 0, NULL, NULL);
            ASSERT_CL(ret, …
Run Code Online (Sandbox Code Playgroud)

gpgpu opencl

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

测量 OpenCL 内核的内存吞吐量

我阅读了 OpenCL 中的全局内存优化。在其中一个幻灯片中,使用了一个非常简单的内核(如下)来演示内存合并的重要性。

__kernel void measure(__global float* idata, __global float* odata, int   offset) {

    int xid = get_global_id(0) + offset;
    odata[xid] = idata[xid];

}
Run Code Online (Sandbox Code Playgroud)

请参阅我下面的代码,它测量内核的运行时间

    ret = clFinish(command_queue);
    size_t local_item_size = MAX_THREADS;

    size_t global_item_size = INPUTSIZE;
    struct timeval t0,t1;
    gettimeofday(&t0, 0 );

    //ret = clFinish(command_queue);
    ret = clEnqueueNDRangeKernel(command_queue, measure, 1, NULL,
                                            &global_item_size, &local_item_size, 0, NULL, NULL);




    ret = clFlush(command_queue);
    ret = clFinish(command_queue);

    gettimeofday(&t1,0);
    double elapsed = (t1.tv_sec-t0.tv_sec)*1000000 + (t1.tv_usec-t0.tv_usec);

    printf("time taken = %lf microseconds\n", elapsed);
Run Code Online (Sandbox Code Playgroud)

我传输了大约 0.5 GB 的数据:

#define …
Run Code Online (Sandbox Code Playgroud)

profiling opencl

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

使用pytorch模型进行推理

我正在使用 fastai 库 ( fast.ai ) 来训练图像分类器。fastai创建的模型实际上是pytorch模型。

type(model)
<class 'torch.nn.modules.container.Sequential'>
Run Code Online (Sandbox Code Playgroud)

现在,我想使用 pytorch 中的这个模型进行推理。到目前为止,这是我的代码:

torch.save(model,"./torch_model_v1")
the_model = torch.load("./torch_model_v1")
the_model.eval() # shows the entire network architecture
Run Code Online (Sandbox Code Playgroud)

根据此处显示的示例:http://pytorch.org/tutorials/beginner/data_loading_tutorial.html#sphx-glr-beginner-data-loading-tutorial-py,我知道我需要编写自己的数据加载类将覆盖 Dataset 类中的一些函数。但我不清楚的是我需要在测试时应用哪些转换?特别是,如何在测试时标准化图像?

另一个问题:我在 pytorch 中保存和加载模型的方法好吗?我在此处的教程中读到:http://pytorch.org/docs/master/notes/serialization.html不推荐我使用的方法。但原因尚不清楚。

pytorch

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

为什么我无法使用在不同包中定义的结构?

我无法使用package main已在其他包中定义的结构.请注意我正确导入其他包

我将结构及其字段命名为以大写字母开头,因为我在Golang中读到了这就是我们如何表明它是一个导出的字段.虽然导入包不需要.

fsm.go

package fsm

import (
"fmt"
"strings"
 )
// EKey is a struct key used for storing the transition map.
type EKey struct {
// event is the name of the event that the keys refers to.
Event string

// src is the source from where the event can transition.
Src string
}
Run Code Online (Sandbox Code Playgroud)

test.go

package main

import (
"encoding/json"
"fmt"

"github.com/looplab/fsm"
) 
func main(){
    Transitions := make(map[EKey]string) 
}
Run Code Online (Sandbox Code Playgroud)

Error: undefined EKey

go

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

K-Means 聚类性能基准测试

我有 157 维的数据,有 688 个数据点。我想用数据进行聚类。

由于 K-Means 是最简单的算法,因此我决定从这种方法开始。

这是 Sklearn 函数调用:

KMeans(init='k-means++', n_clusters=4, n_init=10), name="k-means++", data=sales)

以下是一些输出指标:

init                  time    inertia   homo   compl  v-meas     ARI     AMI  num_clusters
k-means++             0.06s    38967   0.262   0.816   0.397   0.297   0.250      4
k-means++             0.05s    29825   0.321   0.847   0.466   0.338   0.306      6
k-means++             0.07s    23131   0.411   0.836   0.551   0.430   0.393      8
k-means++             0.09s    20566   0.636   0.817   0.715   0.788   0.621     10
k-means++             0.09s    18695   0.534   0.794   0.638   0.568   0.513     12
k-means++             0.11s    16805   0.773   0.852   0.810   0.916   0.760     14 …
Run Code Online (Sandbox Code Playgroud)

cluster-analysis k-means unsupervised-learning scikit-learn

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

当我的值是结构类型时,如何填充map [string]接口{}?

我想构建与以下PurchaseOrder结构等效的JSON :

type PurchaseOrder struct {
    State      string
    FsmName    string
    Supplier   string
    Receiver   string
    TradeItems map[string]PRTradeItem
}

type PRTradeItem struct {
    Quantity float64 `json:"quantity"`
    Supplier string  `json:"supplier"`
    Receiver string  `json:"receiver"`

    PricePerUnit float64 `json:"pricePerUnit"`
}
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我做了以下工作:

po := make(map[string]interface{})
po["Sender"] = "org2"
po["Receiver"] = "org1"
po["TradeItems"] = make(map[string]PRTradeItem)
po["TradeItems"]["sku1"] = PRTradeItem{Quantity: 100, Supplier: "org2", Receiver: "org1", PricePerUnit: 10.5}
poAsBytes, _ := JSON.Marshal(po)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

无效的操作:po [“ TradeItems”] [“ sku1”](类型接口{}不支持索引)。

在四处浏览后,我在代码中添加了以下几行,并且可以正常工作。

internalMap, ok := po["TradeItems"].(map[string]PRTradeItem)
if !ok{

    panic("why???")
}
if ok{ …
Run Code Online (Sandbox Code Playgroud)

go

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