我有以下源代码,我试图在csv文件中写一个列表.我需要将每个新列表写入此csv文件的新行中.源代码如下:
import csv
list1=[55,100,'dir1/dir2/dir3/file.txt',0.8]
resultFile = open("output.csv",'wa')
wr = csv.writer(resultFile, dialect='excel')
wr.writerow(list1)
resultFile.close()
Run Code Online (Sandbox Code Playgroud)
问题是每次运行代码时它都不会在换行符中插入list1.
在matlab中很容易,我只需要使用带有'-append'参数的dlmwrite.
但是如何在Python中执行此操作?
我在我的 PC 上成功安装了 CUDA 8.0,我可以通过在我的 Ubuntu 16.10 中运行以下命令来查看它的文件:
$ sudo find / -name nvcc
/usr/local/cuda-8.0/bin/nvcc
$ sudo find / -name cuda
/usr/local/cuda
/usr/local/cuda-8.0/targets/x86_64-linux/include/thrust/system/cuda
/usr/share/doc/cuda
/usr/include/nvidia-367/cuda
Run Code Online (Sandbox Code Playgroud)
然后,我得到了以下源代码(has_cuda.c)来检查是否安装了 CUDA:
#include<cuda.h>
int main ()
{
int deviceCount;
cudaError_t e = cudaGetDeviceCount(&deviceCount);
return e == cudaSuccess ? deviceCount : -1;
}
Run Code Online (Sandbox Code Playgroud)
但是运行此代码会返回以下错误:
$ gcc has_cuda.c
has_cuda.c:1:17: fatal error: cuda.h: No such file or directory
#include<cuda.h>
^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
我在目录中查找 cuda.h 并在以下位置找到它们:
$ sudo find / -name cuda.h
/usr/local/cuda-8.0/targets/x86_64-linux/include/cuda.h
/usr/include/nvidia-367/cuda/cuda.h
/usr/include/linux/cuda.h
/usr/src/linux-headers-4.8.0-22/include/linux/cuda.h
/usr/src/linux-headers-4.8.0-22/include/uapi/linux/cuda.h
/usr/src/linux-headers-4.8.0-32/include/linux/cuda.h
/usr/src/linux-headers-4.8.0-32/include/uapi/linux/cuda.h …
Run Code Online (Sandbox Code Playgroud) 我正在使用libsvm并且我做了一个非常简单的实验,训练10k向量并且仅用22进行测试.我使用带参数成本的线性内核C=1
.我的问题是多类.所以Libsvm将使用一对一的方法对我的数据进行分类.Libsvm使用SMO来查找分离超平面.
我的一个朋友做了同样的实验,但使用的SVM分类器来自统计工具箱.他还使用了来自R 的e1071软件包.再次,使用的内核是线性内核,参数成本C
等于1,并且使用一对一方法对MATLAB中的数据进行分类(一对一方法由我的朋友编写)和e1071 R包.MATLAB统计工具箱和R的e1071都默认使用SMO方法查找分离超平面.
我也尝试了最新的LIBLINEAR库.同样,使用相同的配置.
以下是使用的代码:
./svm-scale -s train.range train.libsvm > train.scale
./svm-scale -r train.range test.libsvm > test.scale
./svm-train -t 0 -c 1 train.scale train.model
./svm-predict test.scale train.model test.predict
Run Code Online (Sandbox Code Playgroud)
./svm-scale -s train.range train.libsvm > train.scale
./svm-scale -r train.range test.libsvm > test.scale
./train train.scale train.model
./predict test.scale train.model test.predict
Run Code Online (Sandbox Code Playgroud)
rm(list = ls())
cat("\014")
library(e1071)
cat("Training model\n")
Traindata = read.csv("train.csv", header=FALSE)
SVM_model = …
Run Code Online (Sandbox Code Playgroud) 运行keras制作的CNN时出现以下错误
文件“venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py”,第 4185 行,在 truncated_normal 返回 tf.truncated_normal(shape,mean,stddev,dtype=dtype,seed=seed) AttributeError: module “tensorflow”没有属性“truncated_normal”
我已经安装并重新安装了 Tensorflow 2.0 好几次。可能会发生什么?
我在 keras-rl 中有一个自定义环境,在构造函数中有以下配置
def __init__(self, data):
#Declare the episode as the first episode
self.episode=1
#Initialize data
self.data=data
#Declare low and high as vectors with -inf values
self.low = numpy.array([-numpy.inf])
self.high = numpy.array([+numpy.inf])
self.observation_space = spaces.Box(self.low, self.high, dtype=numpy.float32)
#Define the space of actions as 3 (I want them to be 0, 1 and 2)
self.action_space = spaces.Discrete(3)
self.currentObservation = 0
self.limit = len(data)
#Initiates the values to be returned by the environment
self.reward = None
Run Code Online (Sandbox Code Playgroud)
如您所见,我的代理将执行 3 个动作,根据动作,将在下面的函数 step() 中计算不同的奖励:
def …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用python和matplotlib绘制矢量。
我的问题是在matplotlib.pyplot中,我的数据的x轴从0开始,在23结束。在图中考虑了相同的问题。
我想要的是该轴以标签1(与第一个y值或自然python索引中的值#0有关)开始,并在24(与最后一个y值或自然python索引中的值#23有关)上结束)。
我尝试了pp.xlim(xmin = 1),但是问题是这样,第一个维度(0)在图形中消失了,上限继续为23。我希望它为24,第一个y x值标记为1(非0)的值。
此解决方案不适用于我。我正在尝试在图形的x轴上使用标签[1,24],而不是[0,23]。如我所写,如果我使用xlim = 1或set_xlim = 1从x轴的1开始,则图形中将不会显示第一个y值(向量的尺寸0)。它以第二个y值(向量的维1)开始,并以最后一个值结束。我不要 这是我正在使用的源代码。
import matplotlib.pyplot as pp
import numpy as np
a=np.array( [0.10478151, 0.09909564, 0.01319826, 0.00743225, 0.00483721, 0.18202419, 0.01732046, 0.04153536, 0.03317991, 0.0536289, 0.00585423, 0.00929871, 0.00629363, 0.12180654, 0.00607781, 0.03752038, 0.05547452, 0.01459015, 0.00604909, 0.01132442, 0.00710363, 0.11159429, 0.0079922, 0.04198672])
pp.xlabel('Dimension')
pp.ylabel('Importance')
ax=pp.subplot(111)
ax.set_xlim(1, 24)
dim=np.arange(1,24,1);
ax.plot(a, 'ro', color='r',linewidth=1.0, label="Graph2")
pp.xticks(dim)
pp.grid()
pp.show()
pp.close()
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,生成的图像是下面的图像:
预期第一个y值将在x = 1中显示,最后一个y将在x = 24中显示。但是Python索引从0开始,因此,看起来代码正在“移动”值,从x = 2(或在python自然索引中为x = 1)开始。
这里提出的解决方案对我没有帮助,因为它不会显示第一个值(0)。我想要显示所有值,但标签必须以1开头并以24结尾。问题是python索引将从0开头并以23结尾。
如何在python中解决这个问题?
我正在使用matlab的svm分类功能.我的火车和测试数据有以下几个方面:
>> size(TrainV)
ans =
99192 705
>> size(TestV)
ans =
246 705
Run Code Online (Sandbox Code Playgroud)
我有一个函数,用10个类(45个二元分类器)训练一对一分类.可以通过调用以下函数来训练模型:
Models = SVM_multitrain (TrainV(:, 2:end), TrainV(:, 1), 10);
Run Code Online (Sandbox Code Playgroud)
我发送特征向量(TrainV(:,2:end))和标签(TrainV(:,1)),我要求模型训练45个分类器的夫妻组合(10).该功能运行正常,培训结束后我可以获得以下信息.例如,我将展示第3和第45个二进制分类器的模型.
> Models(3)
ans =
SupportVectors: [9x704 double]
Alpha: [9x1 double]
Bias: -2.3927 - 0.0001i
KernelFunction: @linear_kernel
KernelFunctionArgs: {}
GroupNames: [20117x1 double]
SupportVectorIndices: [9x1 double]
ScaleData: [1x1 struct]
FigureHandles: []
>> Models(45)
ans =
SupportVectors: [10x704 double]
Alpha: [10x1 double]
Bias: -2.7245 + 0.0000i
KernelFunction: @linear_kernel
KernelFunctionArgs: {}
GroupNames: [22087x1 double]
SupportVectorIndices: [10x1 double]
ScaleData: [1x1 struct]
FigureHandles: …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编译(thomas pevny的源代码来计算减法像素邻接矩阵).此代码要求先前安装libboost和libpng库,这是我成功完成的.
但是当我执行'make'命令时,终端上会出现以下错误.
spam.cpp:169:26: error: ‘class boost::filesystem3::directory_entry’ has no member named ‘leaf’
spam.cpp:179:20: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?我应该安装另一个libboost版本吗?
感谢您的关注.
我用matlab在impyramid中遇到了问题.我正在尝试保存二进制图像的一个缩小版本,以及这个二进制图像的两个缩小版本.在matlab中这很简单,如下面的代码所示:
scale1_2= impyramid(compressed_image, 'reduce');
scale1_4= impyramid(scale1_2, 'reduce');
Run Code Online (Sandbox Code Playgroud)
因此,尺寸为810x1080的图像以405x540和203x270像素保存.我面临的问题是当我尝试将这两个图像扩展回来时具有与之前相同的尺寸.
scaled_result1_2=impyramid(scale1_2,'expand');
scaled_result1_4=impyramid(impyramid(scale1_4,'expand'), 'expand');
Run Code Online (Sandbox Code Playgroud)
因此,预计scaled_result1_2和scaled_result1_4再次是810x1080图像,但不是:
>>size(scaled_result1_2)
809 1079
>>size(scaled_result1_4)
809 1077
Run Code Online (Sandbox Code Playgroud)
我需要这两个图像再次具有相同的810x1080像素,但是impyramid无法做到这一点.如果我用imresize调整这些图像的大小,它会通过放大和模糊图像来执行图像金字塔分解吗?我应该使用哪种方法(插值)来得到类似的结果?
我是深度学习的新手,我在使用caffe深度学习网络时遇到了一些问题.基本上,我没有找到任何文件解释我如何解决我现在正在处理的一系列问题和问题.
请让我先解释一下我的情况.
我有成千上万的图像,我必须对它们进行一系列预处理操作.对于每个预处理操作,我必须将这些预处理的图像保存为4D矩阵,并且还存储具有图像标签的矢量.我将这些信息存储为LMDB文件,用作caffe googlenet深度学习的输入.
我试图将我的图像保存为.HD5文件,但最终文件大小为80GB,这是我无法处理的内存.
所以,另一个选择是使用LMDB文件,对吗?我是这种文件格式的新手,感谢您帮助理解如何在Matlab中创建它们.基本上,我的菜鸟问题是:
1-这些LMDB文件扩展名为.MDB,对吗?这个扩展名是否与microsoft access一样?或正确的格式是.lmdb,它们是不同的?
2-我找到了创建.mdb文件的解决方案(https://github.com/kyamagu/matlab-leveldb),它是否创建了caffe所需的文件格式?
3-对于caffe,我是否必须为标签和其他图像创建一个.mdb文件,或者两者都可以是同一.mdb文件的字段?
4-当我创建.mdb文件时,我必须标记数据库字段.我可以将一个字段标记为图像而将其他标记为标签吗?caffe能理解哪个领域意味着什么?
5-函数(在https://github.com/kyamagu/matlab-leveldb中)database.put('key1','value1')和database.put('key2','value2')有什么作用?我是否必须将我的4-d矩阵保存在一个字段中,将标签矢量保存在另一个字段中?