এই পোস্টটি ইঙ্গিত দেয় যে আমি যা করতে চাই তা সম্ভব নয়। যাইহোক, আমি এটির ব্যাপারে নিশ্চিত নই - আমি ইতিমধ্যে যা করেছি তা প্রদত্ত, আমি যা করতে চাই তা কেন অর্জন করা যায় না তা আমি দেখতে পাই না ...
আমার দুটি চিত্রের ডেটাসেট রয়েছে যেখানে একটিতে আকৃতির চিত্র রয়েছে (480, 720, 3) অন্যটিতে আকৃতির চিত্র রয়েছে (540, 960, 3)।
আমি নিম্নলিখিত কোডটি ব্যবহার করে একটি মডেল শুরু করেছি:
input = Input(shape=(480, 720, 3), name='image_input')
initial_model = VGG16(weights='imagenet', include_top=False)
for layer in initial_model.layers:
layer.trainable = False
x = Flatten()(initial_model(input))
x = Dense(1000, activation='relu')(x)
x = BatchNormalization()(x)
x = Dropout(0.5)(x)
x = Dense(1000, activation='relu')(x)
x = BatchNormalization()(x)
x = Dropout(0.5)(x)
x = Dense(14, activation='linear')(x)
model = Model(inputs=input, outputs=x)
model.compile(loss='mse', optimizer='adam', metrics=['mae'])
এখন আমি এই মডেলটিকে প্রাক্তন ডেটাসেটে প্রশিক্ষণ দিয়েছি, আমি ইনপুট টেনসর স্তরটি পপ করতে চাই এবং মডেলটিকে একটি নতুন আকারের ইনপুট টেনসর দিয়ে প্রেরণ করতে চাই যা পরবর্তী ডাটাবেসের চিত্রের মাত্রাগুলির সাথে মেলে।
model = load_model('path/to/my/trained/model.h5')
old_input = model.pop(0)
new_input = Input(shape=(540, 960, 3), name='image_input')
x = model(new_input)
m = Model(inputs=new_input, outputs=x)
m.save('transfer_model.h5')
যা এই ত্রুটিটি দেয়:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/aicg2/.local/lib/python2.7/site-packages/keras/engine/topology.py", line 2506, in save
save_model(self, filepath, overwrite, include_optimizer)
File "/home/aicg2/.local/lib/python2.7/site-packages/keras/models.py", line 106, in save_model
'config': model.get_config()
File "/home/aicg2/.local/lib/python2.7/site-packages/keras/engine/topology.py", line 2322, in get_config
layer_config = layer.get_config()
File "/home/aicg2/.local/lib/python2.7/site-packages/keras/engine/topology.py", line 2370, in get_config
new_node_index = node_conversion_map[node_key]
KeyError: u'image_input_ib-0'
আমি যে পোস্টটি লিঙ্ক করেছি তাতে ম্যাজ জানিয়েছে যে একটি মাত্রার অমিল রয়েছে যা কোনও মডেলের ইনপুট স্তর পরিবর্তন করা রোধ করে - যদি এটি হয় তবে আমি কীভাবে সামনে একটি (480, 720, 3) ইনপুট স্তর রেখেছি (224, 224, 3) চিত্রগুলি প্রত্যাশিত ভিজিজি 16 মডেলটির কী?
আমার মনে হয় আরও সম্ভাব্য সমস্যাটি হ'ল আমার প্রাক্তন মডেলের আউটপুটটি এই পোস্টে fchollet কী বলছে তার উপর ভিত্তি করে আমি যা দিচ্ছি তার থেকে আলাদা কিছু প্রত্যাশা করছে । আমি সিনট্যাক্টিক্যালি বিভ্রান্ত হয়ে পড়েছি, তবে আমি বিশ্বাস করি পুরো x = Layer()(x)
বিভাগটি ইনপুট-> আউটপুট থেকে টুকরো টুকরো করে লেয়ার টুকরা তৈরি করছে এবং কেবল সামনে অন্য একটি ইনপুট নিক্ষেপ করা এটি ভেঙে যাচ্ছে।
যদিও আমার আসলেই কোন ধারণা নেই ...
কেউ কি দয়া করে আমাকে আলোকিত করতে পারে যে আমি কী করতে চেষ্টা করছি তা কীভাবে সম্পাদন করা যায় বা যদি এটি সম্ভব না হয় তবে আমাকে কেন ব্যাখ্যা করবেন না?