2015-08-29 57 views
-1

我试图使用k-fold cross validation为此我需要与像下面执行的培训set.I做相应处理:ValueError异常:操作数无法与numpy的不同形状的广播一起?

num_folds = 5 
subset_size = num_training/num_folds 
validation_accuracies = [] 

    for i in range(num_folds): 
     Xcross_valid_set = X_train[i*subset_size:][:subset_size].shape 
     # print X_train[:i*subset_size].shape,X_train[(i+1)*subset_size:] 
     Xtrain_set = X_train[:i*subset_size] + X_train[(i+1)*subset_size:] 
     #Xtrain_set=np.concatenate(X_train[:i*subset_size] , X_train[(i+1)*subset_size:]) 
     Ycross_valid_set=y_train[i*subset_size:][:subset_size] 
     Ytrain_set=y_train[:i*subset_size]+y_train[(i+1)*subset_size:] 

的问题是X_train[:i*subset_size]该形状是(0,3072)X_train[(i+1)*subset_size:]是在i=0的情况下。我曾尝试使用numpy.concatenate但没有工作(40000,3072)

结果形状将是(40000,3072)此处作为第一项给出0 row.So如果第一术语得到(10,3072)和第二项给出(30,3072),则结果形状将(40 ,3072)即40行。我怎样才能将两个不同的形状合并成一个训练集?

+0

只应索引与一组括号的数组:'X_train [I * subset_size:subset_size]'。你打算用'+'做什么?如果添加numpy的阵列,它增加了他们的价值观,它不将它们连接起来(像列表)。请阅读:http://wiki.scipy.org/Tentative_NumPy_Tutorial – askewchan

回答

1

np.concatenate需求为第一个参数阵列的列表:

Xtrain_set = np.concatenate([X_train[:i*subset_size], X_train[(i+1)*subset_size:]]) 
相关问题