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) 我想知道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?
我有一个安装了cuda的Nvidia图形卡。我将qt用作IDE,在我的.pro中,需要放置cuda的include和libs路径。不幸的是,配置图形卡的不是我,做图形卡的人也没有提醒他们将库放在哪里并包括文件...如何快速找到它们(或者它们在哪里)。
(我在Ubuntu上工作)
谢谢
我希望,从给定的数组中,生成通过交换数组中每个可能的元素获得的所有数组,基本上是$\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]
我想在 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:/.../.../
感谢帮助
我想轻松计算 NumPy 数组中元素的数量,但我不知道它们的尺寸。是否有一个通用函数可以计算数组中元素的数量,numpy无论其维度是多少?
我想在 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)
有没有办法让它更好?
我想开发一种用于二元分类的时间序列方法,在 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)上进行测试时会不会导致泛化问题?
谢谢
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)
您能解释一下为什么需要这么多时间(比训练时间还多)吗?有什么办法可以解决这个问题吗?