当我运行我的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
有人可以解释一下必须发生什么吗?
我写了一些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) 我有一个循环,在其中我将多个内核启动到 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) 我阅读了 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) 我正在使用 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不推荐我使用的方法。但原因尚不清楚。
我无法使用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
我有 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) 我想构建与以下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)