Example #1
0
    自定义损失函数
    '''
    return K.mean(K.binary_crossentropy(y_pred, y_true), axis=-1)


def my_loss2(y_true, y_pred):
    '''
    自定义损失函数
    '''
    cost = -K.mean(y_true * K.log(y_pred) + (1 - y_true) * K.log(1 - y_pred))

    return cost


if __name__ == '__main__':
    train_X_org, train_Y_org, test_X_org, test_Y_org, classes = kt_utils.load_dataset(
    )

    # step1 对数据进行归一化处理
    train_X = train_X_org / 255
    test_X = test_X_org / 255

    # step2 对标签数据进行转置处理,在keras中采用(样本数, 标签)这样的输入!!!
    train_Y = train_Y_org.T
    test_Y = test_Y_org.T

    # step3 创建一个模型
    input_shape = train_X.shape[1:]  # 64 X 64 X 3
    happy_model = HappyModel(input_shape)

    # step4 编译模型(定义训练方式)
    #    happy_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
使用keras来构建一个CNN模型
"""
from keras.layers import Input, Dense, Activation, ZeroPadding2D, BatchNormalization, Flatten, Conv2D
from keras.layers import MaxPooling2D
from keras.models import Model
import keras.backend as K
import os
import time
try:
    from kt_utils import load_dataset
except ImportError:
    raise ImportError('The file is not found. Please check the file name!')
K.set_image_data_format('channels_last')
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

X_train_orig, Y_train_orig, X_test_orig, Y_test_orig, classes = load_dataset()

# Normalize image vectors
X_train = X_train_orig / 255.
X_test = X_test_orig / 255.

# Reshape
Y_train = Y_train_orig.T
Y_test = Y_test_orig.T

print("number of training examples = " + str(X_train.shape[0]))
print("number of test examples = " + str(X_test.shape[0]))
print("X_train shape: " + str(X_train.shape))
print("Y_train shape: " + str(Y_train.shape))
print("X_test shape: " + str(X_test.shape))
print("Y_test shape: " + str(Y_test.shape))
Example #3
0
    X = BatchNormalization(axis=3,name=bn_name_base+"2c")(X)

    #捷径
    X_shortcut = Conv2D(filters=F3, kernel_size=(1,1), strides=(s,s), padding="valid",
               name=conv_name_base+"1", kernel_initializer=glorot_uniform(seed=0))(X_shortcut)
    X_shortcut = BatchNormalization(axis=3,name=bn_name_base+"1")(X_shortcut)

    #最后一步
    X = Add()([X,X_shortcut])
    X = Activation("relu")(X)

    return X


if __name__ == '__main__':
    X_train_orig, Y_train_orig, X_test_orig, Y_test_orig, classes = kt_utils.load_dataset()
    
    # Normalize image vectors
    X_train = X_train_orig/255.
    X_test = X_test_orig/255.
    
    # Reshape
    Y_train = Y_train_orig.T
    Y_test = Y_test_orig.T
    index = 3
    plt.imshow(X_train_orig[index])
    plt.show()
    """
    #创建一个模型实体
    happy_model = HappyModel(X_train.shape[1:])
    #编译模型