我正在使用 Tensorflow 1.12,它將 Keras 與 Python 3.6.x 集成在一起我希望使用 Keras 來簡化模型構建,但也希望使用中間層上的數據進行特征圖和內核的可視化,以更好地理解機器學習的工作原理(盡管這確實不那么明顯)我正在使用 mnist 數據庫和一個非?;镜?Keras 模型來嘗試做我想做的事情。這是代碼import tensorflow as tffrom tensorflow.keras import layersfrom tensorflow import kerasprint(tf.VERSION)print(tf.keras.__version__)tf.keras.backend.clear_session()mnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()x_train_shaped = np.expand_dims(x_train, axis=3) / 255.0x_test_shaped = np.expand_dims(x_test, axis=3) / 255.0def create_model(): model = tf.keras.models.Sequential([ keras.layers.Conv2D(32, kernel_size=(4, 4),strides=(1,1),activation='relu', input_shape=(28,28,1)), keras.layers.Dropout(0.5), keras.layers.MaxPooling2D(pool_size=(2,2), strides=(2,2)), keras.layers.Conv2D(24, kernel_size=(8, 8),strides=(1,1)), keras.layers.Flatten(), keras.layers.Dropout(0.5), keras.layers.Dense(128, activation=tf.nn.relu), keras.layers.Dense(10, activation=tf.nn.softmax) ]) model.compile(optimizer=tf.keras.optimizers.Adam(), loss=tf.keras.losses.sparse_categorical_crossentropy, metrics=['accuracy']) return model以上設置了數據集和模型接下來我為 Tensorflow 定義我的會話并進行訓練。這一切都很好,但現在我想獲取我的數據,例如,第一層作為理想的 numpy 數組,我可以在上面進行可視化。我model.layers[0].output給了我Tensor的(?,25,25,32)預期,現在我嘗試做一個eval()和thenafter一個.numpy()方法來獲取我的結果。錯誤信息是You must feed a value for placeholder tensor 'conv2d_6_input' with dtype float and shape [?,28,28,1]我正在尋求有關如何將我的數據(32 個 25x25 像素的特征圖)作為 numpy 數組進行可視化的幫助。sess = tf.Session(graph=tf.get_default_graph())tf.keras.backend.set_session(sess)with sess.as_default(): model = create_model() model.summary() model.fit(x_train_shaped[:10000], y_train[:10000], epochs=2, batch_size=64, validation_split=.2,) model.layers[0].output print(model.layers[0].output.shape) my_array = model.layers[0].output my_array.eval()tf.keras.backend.clear_session()sess.close()
添加回答
舉報
0/150
提交
取消