本文介绍了无法将输入张量从CPU复制到GPU以运行GatherVe:DST张量未初始化。[作品:GatherV2]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
from random import sample
index=sample(range(0, len(result)), len(result)//5*4)
description_train=[child[0] for i, child in enumerate(result) if i in index]
ipc_train=[child[1] for i, child in enumerate(result) if i in index]
description_test=[child[0] for i, child in enumerate(result) if i not in index]
ipc_test=[child[1] for i, child in enumerate(result) if i not in index]
import numpy as np
def to_onehot(li):
result=np.zeros(8)
if 'A' in li:
result[0]=1
if 'B' in li:
result[1]=1
if 'C' in li:
result[2]=1
if 'D' in li:
result[3]=1
if 'E' in li:
result[4]=1
if 'F' in li:
result[5]=1
if 'G' in li:
result[6]=1
if 'H' in li:
result[7]=1
return result
from tensorflow.python.keras.preprocessing.text import Tokenizer
max_words=100000
num_classes=8
t=Tokenizer(num_words=max_words)
t.fit_on_texts(description_train)
X_train=t.texts_to_matrix(description_train, mode='binary')
X_test=t.texts_to_matrix(description_test, mode='binary')
Y_train=np.array([to_onehot(child) for child in ipc_train], dtype=np.int32)
Y_test=np.array([to_onehot(child) for child in ipc_test], dtype=np.int32)
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Dropout
model = Sequential()
model.add(Dense(1024, input_shape=(max_words,), activation='relu'))
model.add(Dense(128, activation='relu'))
model.add(Dense(num_classes, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, Y_train, batch_size=128, epochs=5, validation_split=0.1)
最后一行(Model.fit)导致以下错误。
InternalError: Failed copying input tensor from /job:localhost/replica:0/task:0/device:CPU:0 to /job:localhost/replica:0/task:0/device:GPU:0 in order to run GatherV2: Dst tensor is not initialized. [Op:GatherV2]
我如何才能修复它?提前谢谢您。
推荐答案
我找到了解决方案。我减少了样本数量
model.fit(X_train[0:3000], Y_train[0:3000], batch_size=128, epochs=5, validation_split=0.1)
然后,错误消失。
祝大家好运。
这篇关于无法将输入张量从CPU复制到GPU以运行GatherVe:DST张量未初始化。[作品:GatherV2]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!