• bailaohe

    @刘看山 此外我看val_loss有500+,train_loss都在0.01以下,这是不是也有些问题?

    发布在 社区求助区(SOS!!) 阅读更多
  • bailaohe

    @刘看山 哦,这样啊,所以是这种模型的generalization就只能达到这个程度吗?

    我现在是希望研究一下手写汉字的书法评估,作为前提是先要识别出手写的是哪个汉字;再针对对应的字帖,提取特征进行评估。

    所以常用的手写汉字(3000+)希望能够较为准确识别出来。

    请教一下,

    我们训练模型,分离处理的验证集合,是应该像该课题那样提前分开吗?

    最佳实践是不是应该,循环使用validate_spit参数进行数据集分割?另外,training的准确度达到0.9999是不是也太高了?我总觉的自己踩了什么坑。

    求解惑

    发布在 社区求助区(SOS!!) 阅读更多
  • bailaohe

    项目地址 http://manaai.cn/aicodes_detail3.html?id=35
    请教一下各位大佬,我尝试重现这个项目(单个手写汉字的识别),
    使用的就是文中的简单模型,如下:

        model = tf.keras.Sequential([
            layers.Conv2D(input_shape=input_shape, filters=32, kernel_size=(3, 3), strides=(1, 1),
                          padding='same', activation='relu'),
            layers.MaxPool2D(pool_size=(2, 2), padding='same'),
            layers.Conv2D(filters=64, kernel_size=(3, 3), padding='same'),
            layers.MaxPool2D(pool_size=(2, 2), padding='same'),
    
            layers.Flatten(),
            # layers.Dense(1024, activation='relu'),
            layers.Dense(n_classes, activation='softmax')
        ])
        return model
    
    Model: "sequential"
    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    conv2d (Conv2D)              (None, 64, 64, 32)        320       
    _________________________________________________________________
    max_pooling2d (MaxPooling2D) (None, 32, 32, 32)        0         
    _________________________________________________________________
    conv2d_1 (Conv2D)            (None, 32, 32, 64)        18496     
    _________________________________________________________________
    max_pooling2d_1 (MaxPooling2 (None, 16, 16, 64)        0         
    _________________________________________________________________
    flatten (Flatten)            (None, 16384)             0         
    _________________________________________________________________
    dense (Dense)                (None, 3755)              61525675  
    =================================================================
    Total params: 61,544,491
    Trainable params: 61,544,491
    Non-trainable params: 0
    _________________________________________________________________
    

    我用一个带GPU的比较弱的云主机,跑了15000个epoch,用了2天多。training准确滴差不多达到0.9999,可是validate准确率,还是停留在0.61附近。

    这是继续训练模型时,拿到的log,validate准确度不会再变化了。

    WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.
    Epoch 1/10
    1024/1024 [==============================] - 21s 20ms/step - loss: 0.0087 - accuracy: 0.9999 - val_loss: 544.5386 - val_accuracy: 0.6219
    Epoch 2/10
    1024/1024 [==============================] - 20s 19ms/step - loss: 0.0027 - accuracy: 1.0000 - val_loss: 541.1600 - val_accuracy: 0.6267
    Epoch 3/10
    1024/1024 [==============================] - 19s 18ms/step - loss: 6.6371e-04 - accuracy: 0.9999 - val_loss: 537.3775 - val_accuracy: 0.6217
    Epoch 4/10
    1024/1024 [==============================] - 18s 18ms/step - loss: 0.0304 - accuracy: 0.9998 - val_loss: 538.4648 - val_accuracy: 0.6226
    Epoch 5/10
    1024/1024 [==============================] - 20s 19ms/step - loss: 0.0067 - accuracy: 0.9999 - val_loss: 539.5592 - val_accuracy: 0.6237
    

    这么简单的网络也会overfit吗?请教各位大佬提点一下下一步的优化方向

    发布在 社区求助区(SOS!!) 阅读更多

与 神力AI社区 的连接断开,我们正在尝试重连,请耐心等待