2017-05-25 20 views
5

मैं tensorflow बैकएंड का उपयोग कर रहा हूँ।कैमरे में परत कैसे काम करती है?

संकल्प, अधिकतम-पूलिंग, फ़्लैटन और घने परत को अनुक्रमिक रूप से लागू करना। दृढ़ संकल्प के लिए 3 डी इनपुट (ऊंचाई, चौड़ाई, color_channels_depth) की आवश्यकता होती है।

दृढ़ संकल्प के बाद यह (ऊंचाई, चौड़ाई, संख्या_of_ फ़िल्टर) बन जाता है।

अधिकतम पूलिंग ऊंचाई लागू करने के बाद, चौड़ाई में परिवर्तन। लेकिन flatten परत लगाने के बाद वास्तव में क्या होता है? उदाहरण के लिए।

यदि फ़्लैटन से पहले इनपुट (24,24,32) है तो यह इसे कैसे फ़्लैट करता है?

क्या यह ऊंचाई के लिए अनुक्रमिक (24 * 24) है, अनुक्रमिक रूप से या किसी अन्य तरीके से प्रत्येक फ़िल्टर नंबर के लिए वजन? वास्तविक मूल्यों के साथ एक उदाहरण की सराहना की जाएगी।

उत्तर

12

Flatten() ऑपरेटर मान पिछले आयाम में शुरुआत unrolls (कम से कम थेनो के लिए है, जो "पहले चैनल", नहीं "चैनल पिछले" TF की तरह है। मैं TensorFlow मेरी वातावरण में नहीं चला सकते हैं)।

'सी' का अर्थ है पढ़/सी की तरह सूचकांक आदेश का उपयोग कर तत्वों लिखने के लिए पिछले अक्ष पहले अक्ष सूचकांक के लिए सबसे तेज बदल रहा है, वापस सूचकांक, साथ: यह 'सी' आदेश के साथ numpy.reshape के बराबर है धीमा बदल रहा है।

यहां एक स्टैंडअलोन उदाहरण है जो Flatten ऑपरेटर कोरास फंक्शनल एपीआई के साथ दिखाता है। आप अपने पर्यावरण के लिए आसानी से अनुकूलित करने में सक्षम होना चाहिए।

import numpy as np 
from keras.layers import Input, Flatten 
from keras.models import Model 
inputs = Input(shape=(3,2,4)) 

# Define a model consisting only of the Flatten operation 
prediction = Flatten()(inputs) 
model = Model(inputs=inputs, outputs=prediction) 

X = np.arange(0,24).reshape(1,3,2,4) 
print(X) 
#[[[[ 0 1 2 3] 
# [ 4 5 6 7]] 
# 
# [[ 8 9 10 11] 
# [12 13 14 15]] 
# 
# [[16 17 18 19] 
# [20 21 22 23]]]] 
model.predict(X) 
#array([[ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 
#   11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 
#   22., 23.]], dtype=float32) 
+0

फ़्लैटन कैसे काम करता है यह एक संक्षिप्त संक्षिप्त उत्तर है। – nafizh

1

यह 24 * 24 * 32 की तरह अनुक्रमिक है और इसे निम्न कोड में दिखाए गए अनुसार दोबारा दोहराएं।

def batch_flatten(x): 
    """Turn a nD tensor into a 2D tensor with same 0th dimension. 
    In other words, it flattens each data samples of a batch. 
    # Arguments 
     x: A tensor or variable. 
    # Returns 
     A tensor. 
    """ 
    x = tf.reshape(x, tf.stack([-1, prod(shape(x)[1:])])) 
    return x 
संबंधित मुद्दे