草庐IT

python - 我们应该如何使用 pad_sequences 在 keras 中填充文本序列?

我编码了一个sequencetosequence我自己使用从网络教程中获得的知识和我自己的直觉在keras中学习LSTM。我将示例文本转换为序列,然后使用keras中的pad_sequence函数进行填充。fromkeras.preprocessing.textimportTokenizer,base_filterfromkeras.preprocessing.sequenceimportpad_sequencesdefshift(seq,n):n=n%len(seq)returnseq[n:]+seq[:n]txt="abcdefghijklmn"*100tk=Tokenizer(n

python - Keras VGG16 微调

在kerasblog上有一个VGG16微调的例子,但我无法重现它。更准确地说,这里是用于在没有顶层的情况下初始化VGG16并卡住除最顶层以外的所有block的代码:WEIGHTS_PATH_NO_TOP='https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'weights_path=get_file('vgg16_weights.h5',WEIGHTS_PATH_NO_TOP)model=Sequ

python - keras - 无法导入名称 Conv2D

我最近从https://github.com/floydhub/dl-docker得到了深度学习docker运行并尝试教程时,在导入keras层模块时收到错误。from__future__importprint_functionimportkerasfromkeras.datasetsimportcifar10fromkeras.preprocessing.imageimportImageDataGeneratorfromkeras.modelsimportSequentialfromkeras.layersimportDense,Dropout,Activation,Flattenf

python - 在 Keras 中,验证准确率始终高于训练准确率

我正在尝试使用mnist数据集训练一个简单的神经网络。出于某种原因,当我获得历史记录(从model.fit返回的参数)时,验证精度高于训练精度,这真的很奇怪,但是如果我在评估模型时检查分数,我会得到更高的训练准确率高于测试准确率。无论模型的参数如何,这种情况每次都会发生。另外,如果我使用自定义回调并访问参数'acc'和'val_acc',我会发现同样的问题(数字与历史中返回的数字相同)。请帮帮我!我究竟做错了什么?为什么验证准确率比训练准确率高(你看我看loss的时候也有同样的问题)。这是我的代码:#!/usr/bin/envpython3.5fromkeras.layersimpor

python - 带有用于可变长度输入的屏蔽层的 Keras lstm

我知道这是一个有很多问题的主题,但我找不到解决问题的方法。我正在使用掩蔽层在可变长度输入上训练LSTM网络,但它似乎没有任何效果。输入形状(100,362,24),其中362是最大序列长度,24是特征数量,100是样本数量(分为75个训练/25个有效)。输出形状(100,362,1)稍后转换为(100,362-N,1)。这是我的网络的代码:fromkerasimportSequentialfromkeras.layersimportEmbedding,Masking,LSTM,Lambdaimportkeras.backendasK#OOO#exampleforN:3|||#OOOOO

python - 属性错误 : 'Model' object has no attribute 'name'

我是Keras的新手,我在尝试使用Python3.6构建一个text-classificationCNN模型时遇到了这个错误:AttributeError:'Model'objecthasnoattribute'name'这是我写的代码:print("\nCreatingModel...")x1=Input(shape=(seq_len1,100),name='x1')x2=Input(shape=(seq_len2,100),name='x2')x1=Reshape((seq_len1,embedding_dim,1))(x1)x2=Reshape((seq_len2,embeddi

python - keras BatchNormalization 轴说明

kerasBatchNormalizationlayer使用axis=-1作为默认值,并说明特征轴通常是归一化的。为什么会这样?我想这很令人惊讶,因为我更熟悉使用类似StandardScaler的东西,这相当于使用axis=0。这将单独规范化特征。在keras中默认单独标准化样本(即axis=-1)而不是特征是否有原因?编辑:具体示例通常会转换数据,使每个特征都具有零均值和单位方差。让我们只考虑这个模拟数据集的“零均值”部分,其中每一行都是一个样本:>>>data=np.array([[1,10,100,1000],[2,20,200,2000],[3,30,300,3000]])>>

python - Tensorflow——keras model.save() 引发 NotImplementedError

importtensorflowastfmnist=tf.keras.datasets.mnist(x_train,y_train),(x_test,y_test)=mnist.load_data()x_train=tf.keras.utils.normalize(x_train,axis=1)x_test=tf.keras.utils.normalize(x_test,axis=1)model=tf.keras.models.Sequential()model.add(tf.keras.layers.Flatten())model.add(tf.keras.layers.Dense(

python - 导入错误 : No module named 'tensorflow.python'

在这里我想运行这段代码来尝试使用python进行神经网络:from__future__importprint_functionfromkeras.datasetsimportmnistfromkeras.modelsimportSequentialfromkeras.layersimportActivation,Densefromkeras.utilsimportnp_utilsimporttensorflowastfbatch_size=128nb_classes=10nb_epoch=12#inputimagedimensionsimg_row,img_cols=28,28#the

python - 如何在 Keras 中正确设置 steps_per_epoch 和 validation_steps?

我已经在Keras中训练了多个模型。我的训练集中有39、592个样本,验证集中有9、899个样本。我使用的批量大小为2。当我检查我的代码时,我突然想到我的生成器可能丢失了一些批处理的数据。这是我的生成器的代码:train_datagen=ImageDataGenerator(rescale=1./255,shear_range=0.2,zoom_range=0.2,horizontal_flip=True)val_datagen=ImageDataGenerator(rescale=1./255)train_generator=train_datagen.flow_from_direc