我已经制作了一个卷积神经网络来预测使用MNIST数据集的手写数字但是现在我被困在预测我自己的图像作为cnn的输入,我在训练cnn后保存了权重并且想用它来预测我自己的图像(注意:关心我的输入图像是28x28)
码:
new_mnist.py:
ap = argparse.ArgumentParser()
ap.add_argument("-s", "--save-model", type=int, default=-1,
help="(optional) whether or not model should be saved to disk")
ap.add_argument("-l", "--load-model", type=int, default=-1,
help="(optional) whether or not pre-trained model should be loaded")
ap.add_argument("-w", "--weights", type=str,
help="(optional) path to weights file")
args = vars(ap.parse_args())
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
# load data
print("[INFO] downloading data...")
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# reshape to be [samples][pixels][width][height]
X_train = X_train.reshape(X_train.shape[0], 1, 28, 28).astype('float32')
X_test = X_test.reshape(X_test.shape[0], …Run Code Online (Sandbox Code Playgroud) python machine-learning neural-network conv-neural-network keras
我几乎所有的项目都在使用keras.layers.Embedding。但是,最近我想摆弄 tf.data 并找到了feature_column.embedding_column。
从文档:
feature_column.embedding_column -
DenseColumn从稀疏的分类输入转换而来。当您的输入是稀疏的,但您想将它们转换为密集表示(例如,馈送到 DNN)时,请使用此选项。
keras.layers.Embedding - 将正整数(索引)转换为固定大小的密集向量。例如,[[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
该层只能用作模型中的第一层。
我的问题是,两个 api 是否在不同类型的输入数据上做类似的事情(例如输入 - [0,1,2] for keras.layers.Embedding 及其单热编码代表。[[1, 0,0],[0,1,0],[0,0,1] 为 feature_column.embedding_column)?
我想删除仅包含小于 10 且大于 25 的值的行。我的示例数据框将如下所示:
a b c
1 2 3
4 5 16
11 24 22
26 50 65
Run Code Online (Sandbox Code Playgroud)
预期输出:
a b c
1 2 3
4 5 16
26 50 65
Run Code Online (Sandbox Code Playgroud)
因此,如果该行包含任何小于 10 或大于 25 的值,则该行将保留在数据帧中,否则,需要将其删除。
有什么方法可以用 Pandas 实现这一点,而不是遍历所有行?