小编Mys*_*Guy的帖子

我实施神经网络有什么问题?

在此输入图像描述我想绘制神经网络的学习误差曲线与训练样本的数量.这是代码:

import sklearn
import numpy as np
from sklearn.model_selection import learning_curve
import matplotlib.pyplot as plt
from sklearn import neural_network
from sklearn import cross_validation

myList=[]
myList2=[]
w=[]

dataset=np.loadtxt("data", delimiter=",")
X=dataset[:, 0:6]
Y=dataset[:,6]
clf=sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(2,3),activation='tanh')

# split the data between training and testing
X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y, test_size=0.25, random_state=33)

# begin with few training datas
X_eff=X_train[0:int(len(X_train)/150), : ]
Y_eff=Y_train[0:int(len(Y_train)/150)]

k=int(len(X_train)/150)-1


for m in range (140) :


    print (m)

    w.append(k)

    # train the model and store the training error
    A=clf.fit(X_eff,Y_eff)
    myList.append(1-A.score(X_eff,Y_eff)) …
Run Code Online (Sandbox Code Playgroud)

python neural-network scikit-learn

24
推荐指数
3
解决办法
1166
查看次数

如何清楚地解释Keras中单位参数的含义?

我想知道LSTM如何在Keras工作.例如,在本教程中,与许多其他教程一样,您可以找到如下内容:

model.add(LSTM(4, input_shape=(1, look_back)))
Run Code Online (Sandbox Code Playgroud)

"4"是什么意思.它是图层中神经元的数量.通过神经元,我的意思是每个实例给出一个输出?

实际上,我发现了这个明智的讨论, 但并没有真正相信参考文献中提到的解释.

在该方案中,人们可以看到num_units说明,我认为我没有错的话,每个这个单位是一个非常原子LSTM单元(即4门).但是,这些单位是如何连接的?如果我是对的(但不确定),x_(t-1)是大小nb_features,所以每个功能都是一个单位的输入,num_unit必须等于nb_features正确?

现在,我们来谈谈keras.我已阅读此帖和接受的答案并遇到麻烦.的确,答案是:

基本上,形状就像(batch_size,timespan,input_dim),其中input_dim可以有不同的unit

在这种情况下 ?我在之前的参考文献中遇到了麻烦......

而且,它说,

Keras中的LSTM仅定义一个LSTM块,其单元长度为单位长度.

好的,但是如何定义完整的LSTM图层呢?是否input_shape隐含地创建了与数量一样多的块time_steps(根据我是input_shape我的代码中参数的第一个参数?

谢谢你照亮我

编辑:是否也可以清楚地详细说明如何重塑(n_samples, n_features)有状态LSTM模型的数据?如何处理time_steps和batch_size?

python lstm keras

7
推荐指数
2
解决办法
1026
查看次数

找不到cuda lib并包含在ubuntu上

我有一个安装了cuda的Nvidia图形卡。我将qt用作IDE,在我的.pro中,需要放置cuda的include和libs路径。不幸的是,配置图形卡的不是我,做图形卡的人也没有提醒他们将库放在哪里并包括文件...如何快速找到它们(或者它们在哪里)。

(我在Ubuntu上工作)

谢谢

ubuntu cuda

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

如何生成数组中两个元素的所有排列?

我希望,从给定的数组中,生成通过交换数组中每个可能的元素获得的所有数组,基本上是$\frac {n\cdot(n-1)} {2} $.制作它的最简单方法是什么?

[编辑]:例如,如果我有[1 2 3 4]阵列,我会生成[1 3 2 4],[1 2 4 3],[1 4 3 2],[2 1 3 4],[3 2 1 4][4 2 3 1]

matlab combinations combinatorics

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

使用 Colab 访问本地文件夹

我想在 Colab 上制作一个深度学习系统。我的数据存储在笔记本电脑的本地文件夹中,但我不知道如何访问它。

当我这样做时,它给了我一个错误:

import os
output = [dI for dI in os.listdir(main_folder) if os.path.isdir(os.path.join(main_folder,dI))]
print (output)
Run Code Online (Sandbox Code Playgroud)

[Errno 2] 没有这样的文件或目录:

main_folder 是本地路径: C:/.../.../

感谢帮助

python jupyter-notebook google-colaboratory

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

在Python中计算数组中元素的数量,无论它是多少维

我想轻松计算 NumPy 数组中元素的数量,但我不知道它们的尺寸。是否有一个通用函数可以计算数组中元素的数量,numpy无论其维度是多少?

python arrays numpy

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

在 Matlab 中执行此矩阵运算是否更有效

我想在 Matlab 中做以下事情:给定一个矩阵 H,我想构建一个相同大小的矩阵 H*,使得 H*(:,i) 是下一列的总和(即 i+1 -> n ) 的 H。例如,如果 H 是

H =

 2     4     7    14
 3     5    11    -3
Run Code Online (Sandbox Code Playgroud)

我期待 H* 是

25    21    14     0
13     8    -3     0
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经完成了以下代码段,但它涉及一个for循环,所以我不期望它非常有效(特别是,在我将使用的实际应用程序中,我的矩阵将有大量列)。

H_tilde=zeros(size(H));
for i=1:size(H,2)
    H_tilde(:,i)=sum(H(:,i+1:size(H,2)),2);
end
Run Code Online (Sandbox Code Playgroud)

有没有办法让它更好?

matlab matrix linear-algebra

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

如何在 Keras 中为有状态 LSTM 准备数据?

我想开发一种用于二元分类的时间序列方法,在 Keras 中使用有状态的 LSTM

这是我的数据的外观。我得到了很多,比如说N,录音。每个记录包含 22 个长度的时间序列M_i(i=1,...N)。我想在 Keras 中使用有状态模型,但我不知道如何重塑我的数据,尤其是我应该如何定义我的batch_size.

这是我如何进行statelessLSTM。我look_back为所有录音创建了长度序列,以便我拥有大小数据(N*(M_i-look_back), look_back, 22=n_features)

这是我为此目的使用的功能:

def create_dataset(feat,targ, look_back=1):
    dataX, dataY = [], []
#     print (len(targ)-look_back-1)
    for i in range(len(targ)-look_back):
        a = feat[i:(i+look_back), :]
        dataX.append(a)
        dataY.append(targ[i + look_back-1])
    return np.array(dataX), np.array(dataY)
Run Code Online (Sandbox Code Playgroud)

其中feat是大小的二维数据数组(n_samples, n_features)(对于每个记录),targ是目标向量。

所以,我的问题是,根据上面解释的数据,如何为有状态模型重塑数据并考虑批处理概念?有什么预防措施吗?

我想要做的是能够将每个录音的每个 time_step 分类为癫痫发作/非癫痫发作。

编辑:我想到的另一个问题是:我的录音包含不同长度的序列。我的有状态模型可以学习每个记录的长期依赖关系,这意味着 batch_size 从一个记录到另一个记录不同......如何处理?在完全不同的序列(test_set)上进行测试时会不会导致泛化问题?

谢谢

python lstm keras

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

为什么测试比训练需要更长的时间?

KNNClassifier我正在MNIST 数字数据集上训练 sklearn 。

这是代码:

knn = KNeighborsClassifier()

start_time = time.time()
print (start_time)
knn.fit(X_train, y_train)
elapsed_time = time.time() - start_time

print (elapsed_time)
Run Code Online (Sandbox Code Playgroud)

需要40秒。然而,当我对测试数据进行测试时,需要花费几分钟以上(仍在运行),而测试数据比训练数据少6倍。

这是代码:

y_pred = knn.predict(X_test)
print(confusion_matrix(y_test,y_pred))
Run Code Online (Sandbox Code Playgroud)

您能解释一下为什么需要这么多时间(比训练时间还多)吗?有什么办法可以解决这个问题吗?

python knn scikit-learn

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