大家好,我遇到上述错误。我认为这与网络形状或目标的预处理有关吗?
import requests
from bs4 import BeautifulSoup
link = "https://en.wikisource.org/wiki/Moral_letters_to_Lucilius"
res =requests.get(link)
res.status_code
soup= BeautifulSoup(res.text,'html5lib')
a =soup.find_all('a')
alllinks = []
for h in a:
try:
link = h['href']
alllinks.append(link)
except:
pass
x = [link for link in alllinks if "Letter" in link]
final = ['https://en.wikisource.org/'+p for p in x]
import re
def getletter(link):
res = requests.get(link)
soup = BeautifulSoup(res.text, 'html5lib')
text = '\n'.join([x.text for x in soup.find_all('p')])
text = re.sub("\s\s+ "," ",text)
text = re.sub("\[\d+\]",'',text)
text = re.sub('\d+.','',text)
text = text.replace('\n\n',"\n")
return text
keys = [f"Letter {i}" for i in range(1,len(x)+1)]
values = [getletter(f"https://en.wikisource.org{z}") for z in x]
dic = {k:v for k,v in zip(keys,values)}
complete = "\n".join([val for val in dic.values()])
vocab = sorted(set(complete))
char2idx = {c:i for i,c in enumerate(vocab)}
# In[29]:
d2n = [char2idx[char] for char in complete]
import tensorflow as tf
def shift(seq):
input_data, target_data = seq[:-1],seq[-1]
return input_data,target_data
SEQ_LEN = 100
BATCH_SIZE =64
BUFFER = 10000
dataset = tf.data.Dataset.from_tensor_slices(d2n)
sequences = dataset.batch(SEQ_LEN+1, drop_remainder=True)
dataset = sequences.map(shift)
dataset = dataset.shuffle(BUFFER).batch(BATCH_SIZE,drop_remainder=True)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Embedding,Dropout
model = Sequential([
Dense(128, activation='relu', input_dim=100),
Embedding(len(vocab),256),
Dense(128, activation='relu'),
Dropout(0.3),
Dense(64, activation='relu'),
Dropout(0.5),
Dense(len(vocab),activation='softmax')
])
model.summary()
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
history = model.fit(dataset, epochs=3)
这是错误
ValueError:操作具有None
用于渐变。请确保您所有的操作都定义了渐变(即可区分)。没有渐变的常见操作:K.argmax,K.round,K.eval。