小编The*_*aly的帖子

训练回归网络时NaN损失

我有一个"one-hot encoding"(全1和0)的数据矩阵,有260,000行和35列.我正在使用Keras训练一个简单的神经网络来预测连续变量.制作网络的代码如下:

model = Sequential()
model.add(Dense(1024, input_shape=(n_train,)))
model.add(Activation('relu'))
model.add(Dropout(0.1))

model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.1))

model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dropout(0.1))
model.add(Dense(1))

sgd = SGD(lr=0.01, nesterov=True);
#rms = RMSprop()
#model.compile(loss='categorical_crossentropy', optimizer=rms, metrics=['accuracy'])
model.compile(loss='mean_absolute_error', optimizer=sgd)
model.fit(X_train, Y_train, batch_size=32, nb_epoch=3, verbose=1, validation_data=(X_test,Y_test), callbacks=[EarlyStopping(monitor='val_loss', patience=4)] )
Run Code Online (Sandbox Code Playgroud)

然而,在训练过程中,我看到损失减少很好,但在第二个时代的中期,它变为南:

Train on 260000 samples, validate on 64905 samples
Epoch 1/3
260000/260000 [==============================] - 254s - loss: 16.2775 - val_loss:
 13.4925
Epoch 2/3
 88448/260000 [=========>....................] - ETA: 161s - loss: nan
Run Code Online (Sandbox Code Playgroud)

我尝试使用RMSProp而不是SGD,我试过tanh而不是relu,我试着有没有辍学,都无济于事.我尝试使用较小的模型,即只有一个隐藏层,同样的问题(它在不同的点变成了nan).但是,它确实可以使用较少的功能,即如果只有5列,并提供了很好的预测.似乎存在某种溢出,但我无法想象为什么 - 损失根本不是非常大.

Python版本2.7.11,在linux机器上运行,仅限CPU.我用最新版本的Theano测试了它,我也得到了Nans,所以我尝试去Theano …

python theano keras

48
推荐指数
7
解决办法
5万
查看次数

R中的大型矩阵:尚不支持长向量

我在具有400GB RAM的64位Ubuntu环境中运行64位R 3.1,在处理大型矩阵时遇到了一个奇怪的限制.

我有一个名为A的数字矩阵,即4000行乘950,000列.当我尝试访问其中的任何元素时,我收到以下错误:

Error: long vectors not supported yet: subset.c:733
Run Code Online (Sandbox Code Playgroud)

虽然我的矩阵是通过via读取的scan,但您可以使用以下代码进行复制

test <- matrix(1,4000,900000) #no error
test[1,1] #error
Run Code Online (Sandbox Code Playgroud)

我的谷歌搜索显示这是R 3.0之前的常见错误消息,其中大小为2 ^ 31-1的向量是限制.但是,鉴于我的环境,情况并非如此.

我不应该为这种矩阵使用原生矩阵类型吗?

r vector matrix

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

R - "浏览器()"出错?

我最近一直在使用一些R库来分析一些大数据,我发现自己因为等待几个小时开始分析而感到沮丧,只是为了到达最后并收到一些微不足道的错误,就像我没有安装先决条件库,或者我的一个参数是错误的.那么,我必须从头开始,进行完全相同的分析,生成与它死亡时相同的变量,并等待很长时间.请注意,这些都不是处理异常 - 它们是R的致命错误.

这只是一个想法 - 也许它太好了不可能,所以请至少解释为什么它不起作用 - 但有没有办法让R在环境中执行"browser()"有致命错误?例如,假设它正在执行脚本,并遇到"require(notInstalledYet)".如果它会在它死亡的地方给我一个浏览器(),那么我可以至少保存变量,最好解决问题,而不仅仅是死亡,并且丢失了内存中的所有变量. (例如安装库)并再试一次.

r

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

每列的硬阈值不同

我想对我的矩阵进行硬阈值处理,使得低于某个数字的所有值都设置为零.但是,我希望该阈值因列而异(即每列都有自己的阈值).我怎么能在R中这样做?

这是简单的设置:

set.seed(1)
A <- matrix(runif(n = 12),nrow = 4)
#    [,1]       [,2]      [,3]
#[1,] 0.2655087 0.2016819 0.62911404
#[2,] 0.3721239 0.8983897 0.06178627
#[3,] 0.5728534 0.9446753 0.20597457
#[4,] 0.9082078 0.6607978 0.17655675



threshholds <- c(0.3,1,0.5)

#wanted result: 

#    [,1]       [,2]      [,3]
#[1,] 0         0         0.62911404
#[2,] 0.3721239 0         0        
#[3,] 0.5728534 0         0        
#[4,] 0.9082078 0         0        
Run Code Online (Sandbox Code Playgroud)

我需要将它应用于大型矩阵,因此效率是相关的.


编辑:收到几个很好的建议,我比较了他们的速度,以供将来参考:

set.seed(1)
A <- matrix(runif(n = 1E4*2E3),nrow = 2E3)

threshholds <- runif(n=1E4)

> system.time(A * (A > threshholds[col(A)]))# akrun
   user  system elapsed 
  0.394   0.124 …
Run Code Online (Sandbox Code Playgroud)

r matrix

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

获取列意味着非零数据

R可以获取数据框的非零值的colMeans吗?

data<-data.frame(col1=c(1,0,1,0,3,3),col2=c(5,0,5,0,7,7))
colMeans(data)   # 1.33,4
Run Code Online (Sandbox Code Playgroud)

我想要像:

mean(data$col1[data$col1>0]) # 2
mean(data$col2[data$col2>0]) # 6
Run Code Online (Sandbox Code Playgroud)

提前致谢


解决方案的基准:

n <- 2E4
m <- 1E3
data <- matrix(runif(n*m),nrow = n)

system.time (col_means <- colSums(data)/colSums(!!data) ) 
#   user  system elapsed 
# 0.087   0.007   0.094 

system.time (   colMeans(NA^(data==0)*data, na.rm=TRUE)) 
#   user  system elapsed 
#  0.167   0.084   0.251 

system.time (vapply(data, function(x) mean(x[x!=0]), numeric(1))) 
#   user  system elapsed 
#126.519   0.737 127.715 

library(dplyr)
system.time (summarise_each(data, funs(mean(.[.!=0])))) # Gave error
Run Code Online (Sandbox Code Playgroud)

r

6
推荐指数
2
解决办法
5062
查看次数

非分面图中的分面样式标题

我非常喜欢分面图标题的风格:

require(ggplot2)
df <- data.frame(x = rnorm(1E3), labels = as.factor(c(rep("plot1",500), rep("plot2",500))));
ggplot(df, aes(x=x) ) + geom_histogram() +facet_wrap(~labels)
Run Code Online (Sandbox Code Playgroud)

刻面

我想以类似的方式格式化其他情节的标题。当我将 ggtitle() 添加到图中时,我得到以下结果:

ggplot(df, aes(x=x) ) + geom_histogram() +ggtitle('plot1 and plot2')

标题

如何格式化 ggtitle 标题使其看起来像facet_wrap 标题?

谢谢你!

r ggplot2

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

LAPACKE 加速框架

我正在用 C++ 开发一个基于线性代数的工具,允许用户链接到不同操作系统上的 OpenBLAS/ATLAS/Intel MKL。这在 Windows 和 Linux 上都很好,但我更愿意允许 OS X 用户也链接到 Accelerate Framework。但是,我的代码使用LAPACKE,它是 LAPACK 的 C 接口(例如,函数是 LAPACKE_fxname ),它似乎不是 Accelerate Framework 的一部分。相反,它具有 CLAPACK f2c'd 函数(例如函数是 fxname_),它们具有不同的接口并使用列主存储。

由于我的其余代码适用于行优先,因此我不想将矩阵转换为列优先,以便我可以在 OS X 上使用 CLAPACK,但这是我唯一的选择吗?也就是说,用LAPACKE开发跨平台软件时,有没有办法使用Accelerate Framework呢?或者有什么技巧可以用来在行主数组上使用 CLAPACK 函数(也许只是传递“转置”标志来进行“不转置”操作?在我看来,行主矩阵以相同的方式存储作为转置的列顺序矩阵。)?

c++ lapack accelerate-framework

5
推荐指数
0
解决办法
805
查看次数

将大于索引的值设置为每行NA

在R中,我有一个矩阵df和向量invalidAfterIndex.对于i第i行,我想设置与指数大于所有元素invalidAfterIndex[i]NA.例如:

> df <- data.frame(matrix(rnorm(20), nrow=5))
> df
            X1         X2         X3          X4
1  2.124042819 -0.2862224  0.1686977  2.14838198
2  0.777763004  0.2949123 -0.4331421 -0.81278586
3 -0.003226624 -0.2326152 -1.5779695 -1.23193913
4  0.165975919 -0.1879981 -0.8214994 -1.40267202
5  1.299195865 -0.9418217 -1.5302512  0.03164781
> invalidAfterIndex <- c(2,3,1,4,1)
Run Code Online (Sandbox Code Playgroud)

我想拥有:

            X1         X2         X3          X4
1  2.124042819 -0.2862224  NA         NA
2  0.777763004  0.2949123 -0.4331421  NA
3 -0.003226624  NA         NA         NA
4  0.165975919 -0.1879981 -0.8214994 -1.40267202
5  1.299195865  NA         NA …
Run Code Online (Sandbox Code Playgroud)

r

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

如何将库合并到我的可执行文件中,以便用户不需要拥有DLL?

我正在使用ITK和VTK开发软件,而且一切都很顺利.但是,我想将软件部署到未安装ITK或VTK的最终用户计算机上.当我构建软件,并在没有安装ITK或VTK的机器上运行它时,我得到错误,例如"无法加载libItkBasicFilters.dll"这很有道理 - 机器上没有这样的DLL .

我不能指望我的所有用户都安装ITK以便他们可以运行我的软件 - 我怎样才能让他们只需要运行我的可执行文件,他们就可以享受这个软件了?我担心我不太了解这些图书馆 - 所以如果你能给我任何想法,那将是非常有帮助的.

c++ dll libraries itk

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

标签 统计

r ×6

c++ ×2

matrix ×2

accelerate-framework ×1

dll ×1

ggplot2 ×1

itk ×1

keras ×1

lapack ×1

libraries ×1

python ×1

theano ×1

vector ×1