貓狗大戰V1

2021-08-31 01:36:32 字數 2019 閱讀 6313

%matplotlib inline

import numpy as np

import os

import matplotlib.pyplot as plt

fnames = np.array([f'train/' for f in sorted(os.listdir('train/'))])

labels = np.array([(0 if 'cat' in fname else 1) for fname in fnames])

img = plt.imread(fnames[0])

#plt.imshow(img)

print(fnames)

resnet50_model = resnet50(weights='imagenet')

from sklearn.model_selection import train_test_split

x_train,x_valid, y_train, y_valid =train_test_split(fnames,labels,test_size=0.2, random_state=1)

from keras.preprocessing import image                  

from tqdm import tqdm

def path_to_tensor(img_path):

# 用pil載入rgb影象為pil.image.image型別

img = image.load_img(img_path, target_size=(224, 224))

# 將pil.image.image型別轉化為格式為(224, 224, 3)的3維張量

x = image.img_to_array(img)

# 將3維張量轉化為格式為(1, 224, 224, 3)的4維張量並返回

return np.expand_dims(x, axis=0)

def paths_to_tensor(img_paths):

list_of_tensors = [path_to_tensor(img_path) for img_path in tqdm(img_paths)]

return np.vstack(list_of_tensors)

def resnet50_predict_labels(img_path):

# 返回img_path路徑的影象的**向量

img = preprocess_input(path_to_tensor(img_path))

return np.argmax(resnet50_model.predict(img))

def detector(img_path):

prediction = resnet50_predict_labels(img_path)

if (prediction <= 268) & (prediction >= 151):

index=1

elif (prediction <= 285) & (prediction >= 281):

index=0

else:

index=prediction

return index

for i in range(100):

img = plt.imread(x_train[i])

plt.imshow(img);

plt.show()

index_num=detector(x_train[i])

if index_num ==0:

call='cat'

elif index_num ==1:

call='dog'

else:

call=index_num

print(f'the picture is \n')

print(index_num)

kaggle貓狗大戰

kaggle貓狗大戰 kaggle上的貓狗大戰,即對貓狗的分類 沒有特徵資料,只有,所以只能運用神經網路對其訓練 看了大量的kaggle上的公開例子,大多運用tensorflow或者keras建立神經網路,因為最近在學習torch,因此,想用torch建立卷積神經網路進行建模 但整個過程遇到了很多坑...

洛谷 貓狗大戰

初見安 這裡是傳送門 洛谷p1489 貓狗大戰 乙個挺冷門的題啊 也蠻有意思的。把n個數劃分成兩部分,讓兩部分的數的總和的差值盡量小。其實一眼dp,但是要往正解的方向去想是有點點難度的 明顯我們確定乙個集合,另乙個集合也就可以確定了。思考暴力一點的做法 如果我們可以列舉乙個集合的所有可能性,是不是就...

DP luoguP1489貓狗大戰

題目大意 給你乙個序列 長度小於等於200 你需要把它分成兩半而且兩個被分開的序列長度差不超過一 如果是偶數的話那麼就必須是一樣長咯 要求分成的兩個序列的總和差的絕對值最小 做題思路 1.既然是序列總和,而且分成兩半,那麼我為什麼不先預處理出一開始整個序列的和呢?2.既然是兩個序列的總和,那麼必然會...