草庐IT

tf_keras

全部标签

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 - 使用 tf.set_random_seed 在 Tensorflow 中可重现结果

我正在尝试生成N组独立的随机数。我有一个简单的代码,它显示了3组10个随机数的问题。我注意到即使我使用tf.set_random_seed设置种子,不同运行的结果看起来也不一样。非常感谢任何帮助或评论。(py3p6)bash-3.2$cattest.pyimporttensorflowastfforiinrange(3):tf.set_random_seed(1234)generate=tf.random_uniform((10,),0,10)withtf.Session()assess:b=sess.run(generate)print(b)这是代码的输出:#output:[9.60

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

python - 自动编码器的正则化太强(Keras 自动编码器教程代码)

我正在使用这个关于自动编码器的教程:https://blog.keras.io/building-autoencoders-in-keras.html所有代码都可以正常工作,但是当我为正则化参数(教程代码中定义的参数)设置10e-5时,性能非常差(结果模糊)。事实上,我需要将正则化降低到10e-8以获得正确的输出。我的问题如下:为什么结果和教程差别这么大?同样的数据,同样的参数,没想到差别这么大。我怀疑Keras函数的默认行为已从2016年5月14日起更改(在所有情况下都执行自动批归一化?)。输出使用10e-5正则化(模糊);val_loss在50个时期后为0.2967,在100个时期

python - 如何使用 Keras 摆脱 tensorflow 详细消息

我正在试用tensorflowKeras后端。它不断将这些过于冗长的消息打印到终端,这会破坏probar记录器的输出。比如下面的。h1/2004608/3629568[..............................]-ETA:849s-loss:1.1816Itensorflow/core/common_runtime/gpu/pool_allocator.cc:244]PoolAllocator:After4208getrequests,put_count=4193evicted_count=1000eviction_rate=0.238493andunsatisfie

python - 如何使用从经过训练的 keras 模型中提取的 tensorflow 模型

我想使用keras框架构建和训练神经网络。我将keras配置为使用Tensorflow作为后端。在我用keras训练模型后,我尝试只使用Tensorflow。我可以访问session并获取tensorflow图。但是我不知道如何使用tensorflow图来进行预测。我用下面的教程搭建了一个网络http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/在train()方法中,我仅使用keras构建和训练模型并保存keras和tensorflow模型在eval()方法中这是我的代码:fromke

python - Recurrentshop 和 Keras : multi-dimensional RNN results in a dimensions mismatch error

我对Recurrentshop和Keras有疑问。我正在尝试在循环模型中使用连接和多维张量,但无论我如何安排输入、形状和batch_shape,我都会遇到维度问题。最少的代码:fromkeras.layersimport*fromkeras.modelsimport*fromrecurrentshopimport*fromkeras.layersimportConcatenateinput_shape=(128,128,3)x_t=Input(shape=(128,128,3,))h_tm1=Input(shape=(128,128,3,))h_t1=Concatenate()([x_

python - 将层的一半过滤器设置为不可训练的keras/tensorflow

我正在尝试训练this建议的模型研究论文,其中我将卷积层的一半过滤器设置为Gabor过滤器,其余是默认初始化的随机权重。通常,如果我必须将层设置为不可训练,我将trainable属性设置为False。但在这里我只需要卡住一层的一半过滤器,我不知道该怎么做。任何帮助将非常感激。我正在使用带有Tensorflow后端的Keras。 最佳答案 如何制作两个获得相同输入和(几乎)相同参数的卷积层?因此,其中一层在初始化时可通过随机权重进行训练,而另一层不可通过gabor滤波器进行训练。然后您可以将两个层的输出合并在一起,看起来就像是一个卷积

python - keras 的 Model.train_on_batch 和 tensorflow 的 Session.run([train_optimizer]) 有什么区别?

在下面的神经网络训练的Keras和Tensorflow实现中,keras实现中的model.train_on_batch([x],[y])与sess有何不同。run([train_optimizer,cross_entropy,accuracy_op],feed_dict=feed_dict)在Tensorflow实现中?特别是:这两行如何导致训练中的不同计算?:keras_version.pyinput_x=Input(shape=input_shape,name="x")c=Dense(num_classes,activation="softmax")(input_x)model=