当前位置: 首页 > 知识库问答 >
问题:

预取数据集对象没有属性“ndim”

颜鸿云
2023-03-14

我正在使用下面的代码使用GRU预测下一个单词。

import numpy as np
shakespeare_url = "https://homl.info/shakespeare"
filepath = keras.utils.get_file("shakespeare.txt",shakespeare_urlspeare_url)

with open(filepath) as f:
    shakespeare_txt = f.read()
    
tokenizer = keras.preprocessing.text.Tokenizer(char_level=True)
tokenizer.fit_on_texts(shakespeare_txt)
max_id = len(tokenizer.word_index) ## Number of distinct words
dataset_size = tokenizer.document_count ## total number of character
[encoded] = np.array(tokenizer.texts_to_sequences([shakespeare_txt])) - 1
train_size = (dataset_size * 90) // 100
dataset = tf.data.Dataset.from_tensor_slices(encoded[:train_size])
n_steps = 100
window_length = n_steps +1
dataset = dataset.window(window_length,shift=1,drop_remainder=True)
dataset = dataset.flat_map(lambda window : window.batch(window_length))
batch_size =32
dataset = dataset.shuffle(10000).batch(batch_size)
dataset = dataset.map(lambda windows : (windows[:,:-1],windows[:,1:]))
dataset = dataset.map(lambda X_batch,Y_batch : (tf.one_hot(X_batch,depth = max_id),Y_batch))
dataset = dataset.prefetch(1)
model = keras.models.Sequential([
    keras.layers.GRU(128, return_sequences=True, input_shape =[None,max_id], dropout=0.2,recurrent_dropout=0.2),
    keras.layers.GRU(128,return_sequences=True,dropout=0.2,recurrent_dropout=0.2),
    keras.layers.TimeDistributed(keras.layers.Dense(max_id,activation='softmax'))
])
model.compile(loss='sparse_categorical_crossentropy',optimizer='adam')
history = model.fit(dataset,epochs=20)

低于异常。请帮我解决这个问题??

AttributeError Traceback(最近一次调用),在-

c:\ users \ dixit \ appdata \ local \ programs \ python \ python 38 \ lib \ site-packages \ keras \ engine \ training . py in fit(self,x,y,batch_size,epochs,verbose,callbacks,validation_split,validation_data,shuffle,class_weight,sample_weight,initial_epoch,steps_per_epoch,validation_steps,validation_freq,max_queue_size,workers,use_multiprocessing,**kwargs) 1148 1149 #情况2:符号张量-

C:\user\dixit\appdata\local\Program\python\python38\lib\site-包\keras\引擎\training.py_standardize_user_data(self, x, y,sample_weight,class_weight,check_array_lengths,batch_size)572 573#标准化输入。--

c: \users\dixit\appdata\local\programs\python\python38\lib\site packages\keras\engine\training_utils。py在标准化输入数据(数据、名称、形状、检查批处理轴、异常前缀)97数据=数据。值,如果是data.class。名称=='DataFrame'否则数据98数据=[data]---

C:\user\dixit\appdata\local\Program\python\python38\lib\site-包\keras\引擎\training_utils.pyin(.0)97 data=data.valuesifdata.class.name=='DataFrame'e data 98 data=[data]---

c:\ users \ dixit \ appdata \ local \ programs \ python \ python 38 \ lib \ site-packages \ keras \ engine \ training _ utils . py in standard ization _ single _ array(x)32 ' get tensor with shape:% s ' % str(shape)]33 return x-

属性错误:“预取数据集”对象没有属性“ndim”

共有1个答案

鞠凌龙
2023-03-14

确保从tenorflow导入keras并使用版本2.2.4-tf。得到了同样的错误,这对我有用。

from tensorflow import keras
keras.__version__

2.2.4-tf

 类似资料:
  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建

  • 我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?

  • 当我在较大的数据集上运行代码时,我得到这个错误。 在1.4m问题数据集上运行代码。使用split函数会产生错误。 应用中的~\Documents\anaconda3\lib\site packages\pandas\core\series.py(self、func、convert\u dtype、args、**kwds)3589 else:3590 values=self.astype(objec

  • 问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr

  • 问题内容: 我创建了这个简单的GUI: 我启动并运行了UI。当我单击Grab按钮时,在控制台上出现以下错误: 为什么entryBox设置为None? 问题答案: 并且place在功能Entry对象和所有其他部件的回报None。在python中,执行此操作时.,表达式的结果为返回的值,因此。 你应该将其分成两行,如下所示: 这样,你就可以将参考存储在其中,并且可以按照你的期望进行布局。如果你以块的形