2024-03-29 11:45:40 发布
网友
我用OpenCV裁剪照片中的图像。 从这里:
为此:
然后将其裁剪成5个不同的阈值和角度(在旋转矩阵2D中)来训练神经网络。 现在我有45个相似的jpg文件,用于0到9之间的任何数字。 但是我不明白我怎么能用我自己的数据训练它,而不是使用MNIST数据集 请帮助我建立一个数字识别程序。我需要把img中的所有数字提取成文本。在
如果您要使用NN方法,我将首先从一个小NN开始,看看它有多好,您可以使用here中的MNIST toy示例。在
请注意,您需要使用自己的数据,而不是mnist:
import tensorflow as tf x_train, y_train = load_train_data() x_test, y_test = load_test_data() model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(512, activation=tf.nn.relu), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation=tf.nn.softmax) ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=5) model.evaluate(x_test, y_test)
注意,我“发明”了2个函数:load_train_data()和{},您需要为您的数据实现它们,并为每个函数返回一个((samples,x,y), labels)的元组。
load_train_data()
((samples,x,y), labels)
一旦你有了感觉,我会探索一些更先进的网络,你可以看这里:https://towardsdatascience.com/a-simple-2d-cnn-for-mnist-digit-recognition-a998dbc1e79a,这是一个很好的2d CNN网络教程,只需使用你的数据加载函数,而不是mnist。 由于您现在可能面临一堵墙,因为您没有足够的数据,所以您需要应用一些数据扩充。 最后一个CVPR中有一个非常好的解决方案Deep Diffeomorphic Transformer Networks',它在低样本量的数字分类上表现得非常好。您可以找到mnist代码here,再次对数据使用您的函数。在
如果您要使用NN方法,我将首先从一个小NN开始,看看它有多好,您可以使用here中的MNIST toy示例。在
请注意,您需要使用自己的数据,而不是mnist:
注意,我“发明”了2个函数:},您需要为您的数据实现它们,并为每个函数返回一个
load_train_data()
和{((samples,x,y), labels)
的元组。一旦你有了感觉,我会探索一些更先进的网络,你可以看这里:https://towardsdatascience.com/a-simple-2d-cnn-for-mnist-digit-recognition-a998dbc1e79a,这是一个很好的2d CNN网络教程,只需使用你的数据加载函数,而不是mnist。
由于您现在可能面临一堵墙,因为您没有足够的数据,所以您需要应用一些数据扩充。
最后一个CVPR中有一个非常好的解决方案Deep Diffeomorphic Transformer Networks',它在低样本量的数字分类上表现得非常好。您可以找到mnist代码here,再次对数据使用您的函数。在
相关问题 更多 >
编程相关推荐