我有一个Java应用程序,它使用ffmpeg库并javacv加载和处理视频文件.
我目前正在使用以下代码,以加载videofile到我的数据容器.
public boolean add(String videofile) {
FrameGrabber g = new OpenCVFrameGrabber( videofile );
try{
g.start();
}
catch(Exception e){
g = new FFmpegFrameGrabber( videofile );
try {
g.start();
}catch(Exception x){
return false;
}
}
grabbers.add( new Pair(videofile, g) );
frames.add( 0 );
preprocessed=false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
每次加载视频时,库都会输出大量有关视频本身的元信息:
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自'/home/lejlot/data/test.mp4':元数据:major_brand:isom minor_version:512 compatible_brands:isomiso2mp41编码器:Lavf53.21.1持续时间:00: 04:36.27,开始:0.000000,比特率:305 kb/s流#0:0(und):视频:mpeg4(简单配置文件)(mp4v/0x7634706D),yuv420p,1280x720 [SAR 1:1 DAR 16:9], 303 kb/s,20,85 fps,30 tbr,1k tbn,1k tbc元数据:handler_name:VideoHandler
这显然我不想看到.我不能(不想)修改库源代码,而是修改我自己的源代码,以便它可以拦截这个日志并丢弃它.
到目前为止,我试图临时阻止stdout/stderr流
private static final devnull = new PrintStream(new OutputStream() {
@Override …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,其中类是不平衡的.这些课程要么是0,1要么是2.
我如何计算prediction error每个类,然后重新平衡weights相应地Sklearn.
我正在尝试使用用户定义的内核。我知道 kernlab 在 R 中提供用户定义的内核(自定义内核函数)。我使用了数据垃圾邮件,包括包 kernlab。(变量数=57 示例数=4061)
我定义了内核的形式,
kp=function(d,e){
as=v*d
bs=v*e
cs=as-bs
cs=as.matrix(cs)
exp(-(norm(cs,"F")^2)/2)
}
class(kp)="kernel"
Run Code Online (Sandbox Code Playgroud)
它是高斯核的变换核,其中v是关于每个变量的标准偏差向量的倒数的连续变化值,例如:
v=(0.1666667,........0.1666667)
Run Code Online (Sandbox Code Playgroud)
训练集定义了 60% 的垃圾邮件数据(保留不同类别的比例)。
如果数据的类型是垃圾邮件,则训练 svm 的数据类型 = 1
m=ksvm(xtrain,ytrain,type="C-svc",kernel=kp,C=10)
Run Code Online (Sandbox Code Playgroud)
但是这一步不起作用。它总是在等待回应。
所以,我问你这个问题,为什么?是不是因为例子的数量太多了?是否有任何其他 R 包可以为用户定义的内核训练 SVM?
我想在R中使用Ksvm的用户自定义内核函数.所以,我尝试制作一个vanilladot内核并与"killalab"中的"vanilladot"进行比较.
我按如下方式编写内核.
#
###vanilla kernel with class "kernel"
#
kfunction.k <- function(){
k <- function (x,y){crossprod(x,y)}
class(k) <- "kernel"
k}
l<-0.1 ; C<-1/(2*l)
###use kfunction.k
tmp<-ksvm(x,factor(y),scaled=FALSE, type = "C-svc", kernel=kfunction.k(), C = C)
alpha(tmp)[[1]]
ind<-alphaindex(tmp)[[1]]
x.s<-x[ind,] ; y.s<-y[ind]
w.class.k<-t(alpha(tmp)[[1]]*y.s)%*%x.s
w.class.k
Run Code Online (Sandbox Code Playgroud)
我认为这个操作的结果是以下的结果.但它不是.
#
###use "vanilladot"
#
l<-0.1 ; C<-1/(2*l)
tmp1<-ksvm(x,factor(y),scaled=FALSE, type = "C-svc", kernel="vanilladot", C = C)
alpha(tmp1)[[1]]
ind1<-alphaindex(tmp1)[[1]]
x.s<-x[ind1,] ; y.s<-y[ind1]
w.tmp1<-t(alpha(tmp1)[[1]]*y.s)%*%x.s
w.tmp1
Run Code Online (Sandbox Code Playgroud)
我想也许这个问题与内核类有关.当类设置为"kernel"时,会出现此问题.但是当class设置为"vanillakernel"时,使用用户定义内核的ksvm的结果与使用Kernlab中内置的"vanilladot"的ksvm的结果相同.
#
###vanilla kernel with class "vanillakernel"
#
kfunction.v.k <- function(){
k <- function (x,y){crossprod(x,y)}
class(k) <- …Run Code Online (Sandbox Code Playgroud) 我有一堆数据,基本上是一个日期+时间,其中包含一个我想使用 gnuplot 绘制的数字。问题是数据是从数据库中提取的,因此当一天中的某些时间活动为零时,不会创建任何行,因此我提供给 gnuplot 的“csv”文件在序列中存在间隙。
情节配置:
set term jpeg medium size 800,600
set output "yesterday.jpg"
set datafile separator ":"
set title "Yesterday's Uploads"
set xlabel "Hour of day (Eastern)" offset 0,-2
set ylabel "Items per minute"
unset key
set bmargin 10
set xdata time
set timefmt "%m/%d/%Y-%H-%M"
set xtics rotate
set style fill solid 0.5
plot "yesterday.stats" u 1:2 w boxes
Run Code Online (Sandbox Code Playgroud)
示例数据:
08/27/2013-23-00:34
08/27/2013-22-59:20
08/27/2013-22-58:79
08/27/2013-22-53:6
08/27/2013-22-52:24
08/27/2013-22-51:15
08/27/2013-22-50:12
08/27/2013-22-42:1
08/27/2013-22-38:58
08/27/2013-22-37:36
Run Code Online (Sandbox Code Playgroud)
请注意缺少的分钟(例如从 38 到 42 和 42 到 50),其中没有活动,因此没有数据库条目,因此我的绘图输入文件中没有信息。 …
我正在为可能有多个可能的分类器的问题编写机器学习解决方案,具体取决于数据.所以我收集了几个分类器,在某些情况下,每个分类器的性能都优于其他分类器.我正在研究元分类策略,我看到有几种算法.任何人都可以指出它们之间的根本区别吗?
我正在使用python教自己一些逻辑回归.我想在演练中应用的经验教训在这里在维基百科条目中的小数据集在这里.
有些东西看起来不太对劲.维基百科和Excel解算器(使用此视频中的方法验证)给出拦截-4.0777和系数1.5046,但是我从github示例构建的代码分别输出-0.924200和0.756024.
我试图使用的代码如下.有什么明显的错误吗?
import numpy as np
import pandas as pd
from patsy import dmatrices
from sklearn.linear_model import LogisticRegression
X = [0.5,0.75,1.0,1.25,1.5,1.75,1.75,2.0,2.25,2.5,2.75,3.0,3.25,
3.5,4.0,4.25,4.5,4.75,5.0,5.5]
y = [0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1]
zipped = list(zip(X,y))
df = pd.DataFrame(zipped,columns = ['study_hrs','p_or_f'])
y, X = dmatrices('p_or_f ~ study_hrs',
df, return_type="dataframe")
y = np.ravel(y)
model = LogisticRegression()
model = model.fit(X,y)
print(pd.DataFrame(np.transpose(model.coef_),X.columns))
>>>
0
Intercept -0.924200
study_hrs 0.756024
Run Code Online (Sandbox Code Playgroud) python machine-learning scikit-learn logistic-regression patsy
根据ConvNet的Tensorflow教程,有些观点对我来说不是很明显:
本教程的函数流程似乎如下:
cifar_10_train.py
def train
"""Train CIFAR-10 for a number of steps."""
with tf.Graph().as_default():
[...]
# Get images and labels for CIFAR-10.
images, labels = cifar10.distorted_inputs()
[...]
Run Code Online (Sandbox Code Playgroud)
cifar10.py
def distorted_inputs():
"""Construct distorted input for CIFAR training using the Reader ops.
Returns:
images: Images. 4D tensor of [batch_size, IMAGE_SIZE, IMAGE_SIZE, 3] size.
labels: Labels. 1D tensor of [batch_size] size.
Raises:
ValueError: If no data_dir
"""
if not FLAGS.data_dir:
raise ValueError('Please supply a …Run Code Online (Sandbox Code Playgroud) python machine-learning neural-network conv-neural-network tensorflow
我需要帮助来确定合适的激活功能.我训练我的神经网络来检测钢琴音符.所以在这种情况下我只能有一个输出.音符在那里(1)或音符不存在(0).假设我引入了一个0.5的阈值,并说如果输出大于0.5,则存在所需的音符,如果小于0.5则不存在音符,我可以使用什么类型的激活功能.我认为它应该是硬限制,但我想知道是否也可以使用sigmoid.
signal-processing classification machine-learning neural-network
我想将日期保存到数据库中,而且,当我从数据库获取结果时,我想按日期对它们进行排序并按日期对它们进行分类:例如显示结果,这些结果不到一天等等.保存日期的最佳方法是什么?