无法修复此错误:ValueError:数据基数不明确

如何解决无法修复此错误:ValueError:数据基数不明确

我正在构建一个简单的序列分类模型,但我有一个错误,我找不到 :(

ValueError: Data cardinality is ambiguous:
  x sizes: 21,21,21
  y sizes: 615

我正在从 2 个目录 Positive 和 Negative 中的文本文件中读取序列,并准备将数据发送到模型进行学习,但可以使其工作。

Python 程序在这里失败:

history = model.fit(X_train,y_train,validation_data=(X_test,y_test),epochs=10,batch_size=64)

我的猜测是它来自 one_hot 函数。这一步以前做过很多次,想利用Keras的内部功能来简化一下。

# Get all sequences from raw data
poz_files = GetTextFilePathsInDirectory(f"{base_directory}/_POZ")
sequences_poz = []
for i in range(0,len(poz_files)):
    sequences_poz.extend(GetLinesFromTextFile(poz_files[i]))
label_poz = np.ones(len(sequences_poz))

neg_files = GetTextFilePathsInDirectory(f"{base_directory}/_NEG")
sequences_neg = []
for i in range(0,len(neg_files)):
    sequences_neg.extend(GetLinesFromTextFile(neg_files[i]))
label_neg = np.zeros(len(sequences_neg))

# Assign labels
sequences = []
labels    = []
sequences.extend(sequences_poz)
sequences.extend(sequences_neg)
labels.extend(label_poz)
labels.extend(label_neg)

# get info out of our sequence list
max_sequence_length,vocab_size = getUniqueWordsSentenceLength(sequences) # fit to match exact number of unique words in sequence

# transform sequences into vectors
encoded_sequences = [one_hot(s,vocab_size) for s in sequences] # use vocab x 4 - much larger than needed to reduce the probability of collisions from the hash function
padded_sequences  = pad_sequences(encoded_sequences,maxlen=max_sequence_length,padding='pre') # padd sequences so they are all the same length

# label sequences
labeled_sequences = list(zip(padded_sequences,labels))

# split train and test data
train,test = train_test_split(labeled_sequences,test_size=0.05,shuffle=True)
print(test)
X_train,y_train = list(zip(*train))
X_test,y_test = list(zip(*test))
y_train = np.array(y_train)
y_test = np.array(y_test)

model = Sequential()
model.add(Embedding(vocab_size,2,input_length=max_sequence_length)) #The model is a simple binary classification model. Importantly,the output from the Embedding layer will be 4 vectors of 8 dimensions each,one for each word.
model.add(LSTM(1000))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
print(model.summary())
history = model.fit(X_train,batch_size=64)

输出

print(test)

如下:

[(array([7,4,6,7,1,4],dtype=int32),1.0),(array([0,3,0.0),(array([7,(array([3,1.0)]

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?