首页 > 解决方案 > tensorflow版本之间的准确性不一致

问题描述

我是 keras/tensorflow 的新手。

在另一个版本的 keras,tensorflow 之间,在准确性方面存在不一致的结果。

我不知道为什么。

先感谢您!

import tensorflow as tf
tf.__version__

'1.15.2'

from tensorflow import keras
keras.__version__

'2.2.4-tf'

from keras.models import Model, Sequential
from keras.layers import InputLayer, Dense, BatchNormalization, Activation, Dropout
from keras.callbacks import EarlyStopping
from keras import regularizers

classify = [
    InputLayer(input_shape=(X_train.shape[1],)),
    BatchNormalization(),
    
    Dense(128),
    BatchNormalization(),
    Activation('relu'),

    Dense(64, activity_regularizer=regularizers.l1(1e-5)),
    BatchNormalization(),
    Activation('relu'),
    
    Dense(1),
    Activation('sigmoid')
]

model = Sequential(classify)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=5, batch_size=128, shuffle="batch")
print(model.metrics_names, model.evaluate(X_test, y_test))

['损失','acc'] [0.02403441002866048,0.994511238891793]

import tensorflow as tf
tf.__version__

'2.3.0'

from tensorflow import keras
keras.__version__

'2.4.0'

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=5, batch_size=128, shuffle="batch")
print(model.metrics_names, model.evaluate(X_test, y_test))

['损失','准确性'] [0.6886715888977051,0.5517511963844299]

标签: tensorflowkeras

解决方案


尝试:

for i, var in enumerate(model.trainable_weights):
    print(model.trainable_weights[i].name)

参考:https ://github.com/tensorflow/tensorflow/issues/40638


推荐阅读