我尝试使用SVM分类器训练大约100k样本的数据,但我发现它非常慢,即使两小时后也没有响应.当数据集有大约1k个样本时,我可以立即得到结果.我也尝试过SGDClassifier和naïvebayes,速度非常快,我在几分钟内得到了结果.你能解释一下这种现象吗?
我通过网格搜索CV为我的KNN估算器找到了一组最好的超参数:
>>> knn_gridsearch_model.best_params_
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我想用这些新发现的参数训练我的最终估算器.有没有办法直接提供上面的超参数字典?我试过这个:
>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_)
Run Code Online (Sandbox Code Playgroud)
但相反,希望的结果new_knn_model只是将整个字典作为模型的第一个参数,并将其余的作为默认值:
>>> knn_model
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=1,
n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'},
p=2, weights='uniform')
Run Code Online (Sandbox Code Playgroud)
确实令人失望.
python machine-learning scikit-learn hyperparameters grid-search
假设我使用以下代码在python中定义了一些bitarray:
from bitarray import bitarray
d=bitarray('0'*30)
d[5]=1
Run Code Online (Sandbox Code Playgroud)
如何将d转换为整数表示?另外,如何d&(d+1)使用bitarrays 进行操作?
我正在尝试使用多层神经网络来预测第n个方格.
我有以下训练数据,包含前99个方格
1 1
2 4
3 9
4 16
5 25
...
98 9604
99 9801
Run Code Online (Sandbox Code Playgroud)
这是代码:
import numpy as np
import neurolab as nl
# Load input data
text = np.loadtxt('data_sq.txt')
# Separate it into datapoints and labels
data = text[:, :1]
labels = text[:, 1:]
# Define a multilayer neural network with 2 hidden layers;
# First hidden layer consists of 10 neurons
# Second hidden layer consists of 6 neurons
# Output layer consists of 1 …Run Code Online (Sandbox Code Playgroud) artificial-intelligence machine-learning neural-network python-3.x tensorflow
我正在尝试使用tensorflow使用深度卷积神经网络实现简单的性别分类器.我找到了这个模型并实现了它.
def create_model_v2(data):
cl1_desc = {'weights':weight_variable([7,7,3,96]), 'biases':bias_variable([96])}
cl2_desc = {'weights':weight_variable([5,5,96,256]), 'biases':bias_variable([256])}
cl3_desc = {'weights':weight_variable([3,3,256,384]), 'biases':bias_variable([384])}
fc1_desc = {'weights':weight_variable([240000, 128]), 'biases':bias_variable([128])}
fc2_desc = {'weights':weight_variable([128,128]), 'biases':bias_variable([128])}
fc3_desc = {'weights':weight_variable([128,2]), 'biases':bias_variable([2])}
cl1 = conv2d(data,cl1_desc['weights'] + cl1_desc['biases'])
cl1 = tf.nn.relu(cl1)
pl1 = max_pool_nxn(cl1,3,[1,2,2,1])
lrm1 = tf.nn.local_response_normalization(pl1)
cl2 = conv2d(lrm1, cl2_desc['weights'] + cl2_desc['biases'])
cl2 = tf.nn.relu(cl2)
pl2 = max_pool_nxn(cl2,3,[1,2,2,1])
lrm2 = tf.nn.local_response_normalization(pl2)
cl3 = conv2d(lrm2, cl3_desc['weights'] + cl3_desc['biases'])
cl3 = tf.nn.relu(cl3)
pl3 = max_pool_nxn(cl3,3,[1,2,2,1])
fl = tf.contrib.layers.flatten(cl3)
fc1 = tf.add(tf.matmul(fl, fc1_desc['weights']), fc1_desc['biases'])
drp1 …Run Code Online (Sandbox Code Playgroud) loss neural-network deep-learning conv-neural-network tensorflow
我正在尝试运行这个教程 http://emmanuelle.github.io/segmentation-of-3-d-tomography-images-with-python-and-scikit-image.html
我想用Python进行三维断层扫描图像分割.
我在开始时直接挣扎,重塑了形象.
这是代码:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import time as time
data = np.fromfile('/data/data_l67/dalladas/Python3/Daten/Al8Cu_1000_g13_t4_200_250.vol', dtype=np.float32)
data.shape
(60940800,)
data.reshape((50,1104,104))
Run Code Online (Sandbox Code Playgroud)
-------------------------------------------------- ------------------------- ValueError Traceback(最近一次调用last)in()----> 1 data.reshape((50,1104) ,104))
ValueError:无法将大小为30470400的数组重塑为形状(50,1104,104)
有人可以帮帮我吗?
我能够使用keras成功训练我的有状态LSTM.我的批量大小为60,我在网络中发送的每个输入都可以被batch_size整除.以下是我的代码段:
model = Sequential()
model.add(LSTM(80,input_shape = trainx.shape[1:],batch_input_shape=(60,
trainx.shape[1], trainx.shape[2]),stateful=True,return_sequences=True))
model.add(Dropout(0.15))
model.add(LSTM(40,return_sequences=False))
model.add(Dense(40))
model.add(Dropout(0.3))
model.add(Dense(output_dim=1))
model.add(Activation("linear"))
keras.optimizers.RMSprop(lr=0.005, rho=0.9, epsilon=1e-08, decay=0.0)
model.compile(loss="mse", optimizer="rmsprop")
Run Code Online (Sandbox Code Playgroud)
我的训练线成功运行:
model.fit(trainx[:3000,:],trainy[:3000],validation_split=0.1,shuffle=False,nb_epoch=9,batch_size=60)
Run Code Online (Sandbox Code Playgroud)
现在我尝试预测测试集再次被60整除,但是我得到了错误:
ValueError:在有状态网络中,您应该只传递带有多个样本的输入,这些样本可以除以批量大小.发现:240个样本.批量:32.
谁能告诉我上面有什么问题?我很困惑,尝试了很多东西,但没有任何帮助.
给定具有维度的X (m个样本,n个序列和k个特征),以及具有维度的y个标签(m个样本,0/1):
假设我想训练一个有状态的LSTM(通过keras定义,其中"stateful = True"意味着每个样本的序列之间没有重置单元状态 - 如果我错了请纠正我!),是否应该重置状态在每个时期或每个样本的基础上?
例:
for e in epoch:
for m in X.shape[0]: #for each sample
for n in X.shape[1]: #for each sequence
#train_on_batch for model...
#model.reset_states() (1) I believe this is 'stateful = False'?
#model.reset_states() (2) wouldn't this make more sense?
#model.reset_states() (3) This is what I usually see...
Run Code Online (Sandbox Code Playgroud)
总之,我不确定是否在每个序列或每个时期之后重置状态(在所有m个样本都在X中训练之后).
建议非常感谢.
我有一个网络,我想在一些数据集上训练(例如,说CIFAR10).我可以通过创建数据加载器对象
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
Run Code Online (Sandbox Code Playgroud)
我的问题如下:假设我想进行几次不同的训练迭代.假设我首先想要在奇数位置的所有图像上训练网络,然后在偶数位置的所有图像上训练网络,依此类推.为此,我需要能够访问这些图像.不幸的是,它似乎trainset不允许这种访问.也就是说,尝试做trainset[:1000]或更多一般trainset[mask]会抛出错误.
我可以做
trainset.train_data=trainset.train_data[mask]
trainset.train_labels=trainset.train_labels[mask]
Run Code Online (Sandbox Code Playgroud)
然后
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
Run Code Online (Sandbox Code Playgroud)
但是,这将迫使我在每次迭代中创建完整数据集的新副本(因为我已经更改,trainset.train_data所以我需要重新定义trainset).有没有办法避免它?
理想情况下,我希望有一些"等同"的东西
trainloader = torch.utils.data.DataLoader(trainset[mask], batch_size=4,
shuffle=True, num_workers=2)
Run Code Online (Sandbox Code Playgroud) 我试图理解卷积神经网络中的维度是如何表现的.在下图中,输入是28×28矩阵,带有1个通道.然后有32个5乘5的过滤器(高度和宽度的步幅2).所以我理解结果是14乘14乘32.但是在下一个卷积层中,我们有64个5乘5的滤波器(再次使用步幅2).那么为什么结果是7乘7乘64而不是7乘7乘32*64?我们不是将64个过滤器中的每一个应用于32个通道中的每一个吗?
convolution neural-network deep-learning conv-neural-network
python ×6
tensorflow ×3
keras ×2
lstm ×2
scikit-learn ×2
bitarray ×1
convolution ×1
grid-search ×1
loss ×1
numpy ×1
python-3.x ×1
pytorch ×1
reshape ×1
rnn ×1
svm ×1
torch ×1