微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

InvalidArgumentError: 发现 2 个根错误 (0) 无效参数:矩阵大小不兼容:In[0]:[665,64],In[1]:[42560,1]

如何解决InvalidArgumentError: 发现 2 个根错误 (0) 无效参数:矩阵大小不兼容:In[0]:[665,64],In[1]:[42560,1]

[[[{{nodedense_22/MatMul}}]] [[dense_23/Sigmoid/_329]] (1) 无效参数:矩阵大小不兼容:In[0]:[665,64],In[1 ]:[42560,1]
这一切都属于:y_score = model.predict(X_test,verbose = 1,batch_size = 256)

from warnings import warn
from abc import ABCMeta,abstractmethod
from tensorflow import keras,reshape
np.random.seed(1337)  # for reproducibility
import keras
from keras.optimizers import RMSprop,SGD
from keras.models import Sequential,model_from_yaml
from keras.layers.core import Dense,Dropout,Activation,Flatten
import keras.layers.core as core
from keras.layers import Dense,Embedding,LSTM,Input,merge,multiply,Reshape
from keras.layers.convolutional import Convolution1D,MaxPooling1D
from keras.layers.wrappers import Bidirectional
from keras.constraints import maxnorm
from keras.layers.recurrent import LSTM,GRU
from keras.callbacks import ModelCheckpoint,EarlyStopping
from keras.layers import Embedding
from sklearn.metrics import fbeta_score,roc_curve,auc,roc_auc_score,average_precision_score
import matplotlib.pyplot as plt
from keras.regularizers import l2,l1,l1_l2
# from keras.models import Model
from tensorflow.keras.models import Model 
# from keras import backend as K
import tensorflow.keras.backend as K
from keras.engine.topology import Layer
from keras import activations,initializers,regularizers,constraints
from keras.engine import InputSpec

from keras.layers import ActivityRegularization
class Attention(Layer):
    def __init__(self,hidden,init='glorot_uniform',activation='linear',W_regularizer=None,b_regularizer=None,W_constraint=None,**kwargs):
      self.init = initializers.get(init)
      self.activation = activations.get(activation)
      self.W_regularizer = regularizers.get(W_regularizer)
      self.b_regularizer = regularizers.get(b_regularizer)
      self.W_constraint = constraints.get(W_constraint)
      self.hidden=hidden
      super(Attention,self).__init__(**kwargs)
    def build(self,input_shape):
      input_dim = input_shape[-1]
      self.input_length = input_shape[1]
      self.W0 = self.add_weight(name ='{}_W1'.format(self.name),shape = (input_dim,self.hidden),initializer = 'glorot_uniform',trainable=True) # Keras 2 API
      self.W  = self.add_weight( name ='{}_W'.format(self.name),shape = (self.hidden,1),trainable=True)
      self.b0 = K.zeros((self.hidden,),name='{}_b0'.format(self.name))
      self.b  = K.zeros((1,name='{}_b'.format(self.name))

      print (modil.summary())
      return modil
      #for Testing only

def test(n_estimators = 16):
        model = set_up_model_up()
       
        X_test = np.load('/content/drive/MyDrive/X_test.npy',mmap_mode='r')
        y_test = np.load('/content/drive/MyDrive/y_test.npy',mmap_mode='r')
        ensemble = np.zeros(len(X_test))
        for i in range(n_estimators):
           print ('testing',i,'model')
           print ('model shape is',model.summary)
           model.load_weights('/content/drive/MyDrive/model/bestmodel_split_chr_GD_'+ str(i) + '.hdf5')
           print ('model shape after loading is',model.summary)
           #Once the model is created,you can config the model with losses and metrics with model.compile(),train the model with model.fit(),or use the model to do prediction with model.predict().
           print ('Predicting...')
           #  X_test=X_test.Reshape(665,-1)
           print ('testing',X_test.shape)
           print (len(model.layers))
           #  y_score = model.predict(np.expand_dims(np.array(X_test,dtype=np.float32),0),batch_size = 256)
           
           formatmul= np.empty((3,2000,4),dtype=object)
           for x in range(0,2):
             for y in range(0,1999):
               for z in range(0,3):
                 formatmul[x][y][z]=X_test[x][y][z]
           y_score = model.predict(X_test).reshape(665,-1),batch_size = 256)
           print("model.output_shape",model.output_shape)
           print("model.input_shape",model.input_shape)
            y_score = model.predict(formatmul,batch_size=42560)
           y_score = model.predict(np.array(formatmul,batch_size =665)
           y_pred = []
        for item in y_score:
           y_pred.append(item[0])
           y_pred =  np.array(y_pred)
           ensemble += y_pred
        ensemble /= n_estimators
        np.save('/content/drive/MyDrive/test_result/y_test',y_test)
        np.save('/content/drive/MyDrive/test_result/y_pred',ensemble)
        auroc = roc_auc_score(y_test,ensemble)
        aupr  = average_precision_score(y_test,ensemble)
        print ('auroc',auroc)
        print ('aupr',aupr)

test(n_estimators = 16)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。