302 - 350 Flashcards
tf.keras.applications.vgg16.VGG16(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000, classifier_activation=’softmax’)
Заморозить обученную модель VGG16 и соединить её с собственным классификатором в Python-фреймворке TensorFlow.
from tensorflow.keras.applications import VGG16 conv_base = VGG16(weights=’imagenet’, # Источник весов include_top=False, # Не подключать полно связный слой input_shape=(150, 150, 3)) # Форма входных тензоров model = models.Sequential([conv_base, layers.Flatten(), layers.Dense(256, activation=’relu’), layers.Dense(1, activation=’sigmoid’)])
tf.keras.layers.Flatten(data_format=None, **kwargs)
Flattens the input. Does not affect the batch size.
model = tf.keras.Sequential() model.add(tf.keras.layers.Conv2D(64, 3, 3, input_shape=(3, 32, 32))) model.output_shape 👉 (None, 1, 10, 64) model.add(Flatten()) model.output_shape 👉 (None, 640)
tf.keras.layers.Dense()
Просто твой обычный плотно связанный слой NN. Обычно не для картинок. Dense реализует операцию: output = activation(dot(input, kernel) + bias) где activation - это поэлементная функция активации.
model = tf.keras.models.Sequential() model.add(tf.keras.Input(shape=(16,))) model.add(tf.keras.layers.Dense(32, activation='relu')) Now the model will take as input arrays of shape (None, 16) and output arrays of shape (None, 32). # Note that after the first layer, you don't need to specify the size of the input anymore: model.add(tf.keras.layers.Dense(32)) model.output_shape 👉 (None, 32)
pandas.DataFrame.to_csv(path_or_buf=None, sep=’,’, na_rep=’’, float_format=None, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None, compression=’infer’, quoting=None, quotechar=’”’, line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal=’.’, errors=’strict’, storage_options=None)
Write object to a comma-separated values (csv) file.
👉sep - String of length 1. Field delimiter for the output file.
👉na_rep - Missing data representation.
👉float_format - Format string for floating point numbers.
👉columns - Columns to write.
👉header - Write out the column names. If a list of strings is given it is assumed to be aliases or the column names.
👉index - Write row names (index).
👉mode - Python write mode, default ‘w’.
👉encoding - A string representing the encoding to use in the output file, defaults to ‘utf-8’.
👉chunksize - Rows to write at a time.
df = pd.DataFrame({'name': ['Raphael', 'Donatello'], 'mask': ['red', 'purple'], 'weapon': ['sai', 'bo staff']}) df.to_csv("Name.csv", index=False)
tf.keras.utils.pad_sequences(sequences, maxlen=None, dtype=’int32’, padding=’pre’, truncating=’pre’, value=0.0)
Эта функция преобразует список (длиной num_samples) последовательностей в двумерный массив Numpy формы (num_samples, num_timesteps).
num_timesteps - это либо аргумент maxlen , если он указан , либо длина самой длинной последовательности в списке.
Последовательности длиннее num_timesteps усекаются, чтобы соответствовать желаемой длине.
💡 Avoid padding with existing values
👉 In the initial dataset there are real 0’s, and we can’t differentiate them from the 0’s used for padding.
👉 For that reason, pad with values that are not in the initial dataset, as -1000 here
💡 Pad at the end instead of the beginning padding=’post’
👉 Padding at beginning may influence internal RNN state!
👉 Padding at the end is safe because you will stop your prediction at the last “real” value anyway
from tensorflow.keras.preprocessing.sequence import pad_sequences X_pad = pad_sequences(X, dtype='float32') # int32 by default X_pad = pad_sequences(X, dtype='float32', padding='post', value=-1000)
sequence = [[1], [2, 3], [4, 5, 6]] tf.keras.preprocessing.sequence.pad_sequences(sequence) 👉 array([[0, 0, 1], [0, 2, 3], [4, 5, 6]], dtype=int32)
tf.keras.preprocessing.sequence.pad_sequences(sequence, value=-1) 👉 array([[-1, -1, 1], [-1, 2, 3], [ 4, 5, 6]], dtype=int32)
tf.keras.layers.LSTM(units, activation=’tanh’, recurrent_activation=’sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, return_sequences=False, return_state=False, go_backwards=False, stateful=False, time_major=False, unroll=False, **kwargs)
LSTM (Long Short Term Memory): Introduced to prevent the “vanishing gradient”.ля максимизации производительности.
inputs = tf.random.normal([32, 10, 8]) lstm = tf.keras.layers.LSTM(4) output = lstm(inputs) print(output.shape) 👉 (32, 4) lstm = tf.keras.layers.LSTM(4, return_sequences=True, return_state=True) whole_seq_output, final_memory_state, final_carry_state = lstm(inputs) print(whole_seq_output.shape) 👉 (32, 10, 4) print(final_memory_state.shape) 👉 (32, 4) print(final_carry_state.shape) 👉 (32, 4)
tf.keras.layers.GRU(units, activation=’tanh’, recurrent_activation=’sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False, time_major=False, reset_after=True, **kwargs)
GRU (Gated Recurrent Units) — обрабатывает целую последовательность.
👉 Introduced to reduce the number of parameters compared with LSTMs
👉 It implies a faster training, with potentially less training data
from tensorflow.keras.layers import SimpleRNN, LSTM, GRU model = Sequential() model.add(SimpleRNN(units=10, activation='tanh')) model = Sequential() model.add(LSTM(units=10, activation='tanh')) model = Sequential() model.add(GRU(units=10, activation='tanh')) model.compile(loss='mse', optimizer='rmsprop')
tf.keras.layers.SimpleRNN(units, activation=’tanh’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False, **kwargs)
Рекуррентные нейронные сети (Recurrent Neural Networks) — это класс нейронных сетей, которые хороши для моделирования последовательных данных, таких как временные ряды или естественный язык, например для текста, time series.
👉 input = sequence of repeated observations(сколько лет или дней подряд данные)
👉 X.shape = (n_SEQUENCES, n_OBSERVATIONS, n_FEATURES) EX = (16 cities, 100 days, 4 features)
👉 RNN: X_batch.shape = (16, 100, 3) 100 days of 3 atmospheric propertie
👉 RNN: X_batch.shape = (16, 100, 128, 128, 3) 100 frames in a video
👉 CNN: X_batch.shape = (16, 128, 128, 3) images with 3 colors
👉 DNN: X_batch.shape = (16, 49152) flattened image
👉 [rain, temperature] on next days based on past [rain, temperature, pressure…]
X.shape = (None, 100, 4) y.shape = (None, 8, 2)
inputs = np.random.random([32, 10, 8]).astype(np.float32) simple_rnn = tf.keras.layers.SimpleRNN(4) output = simple_rnn(inputs) # The output has shape `[32, 4]`. simple_rnn = tf.keras.layers.SimpleRNN(4, return_sequences=True, return_state=True) whole_sequence_output, final_state = simple_rnn(inputs)
tf.keras.preprocessing.text.Tokenizer(num_words=None, filters=’!”#$%&()*+,-./:;<=>?@[\]^_`{|}~\t\n’, lower=True, split=’ ‘, char_level=False, oov_token=None, analyzer=None, **kwargs)
Данный класс позволяет векторизовать текстовый корпус, превращая каждый текст либо в последовательность целых чисел, либо в вектор, где коэффициент для каждой лексемы может быть двоичным, основанным на подсчете слов, на основе tf-idf…
from tensorflow.keras.preprocessing.text import Tokenizer sentences = ['Life is so beautiful', 'Hope keeps us going', 'Let us celebrate life!'] tokenizer = Tokenizer() tokenizer.fit_on_texts(sentences) word_index = tokenizer.word_index print(word_index) 👉 {'life': 1, 'us': 2, 'is': 3, 'so': 4, 'beautiful': 5, 'hope': 6, 'keeps': 7, 'going': 8, 'let': 9, 'celebrate': 10}
numpy.radians(x, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, subok=True[, signature, extobj])
Преобразовывать углы от градусов в радиан.
np. radians(30) # 30 градусов 👉 0. 5235987755982988
deg = np.arange(0, 30, 60, 90, 120, 150, 180) # Значения в градусах 👉 array([0. , 0.52359878, 1.04719755, 1.57079633, 2.0943951 , 2.61799388, 3.14159265])
git.gitignore
Файл в котором ведется запись тех файлов или папки которые должны быть проигнорированы гитом. Регистрируется в корневом каталоге репозитория. Необходимо вручную отредактировать файл .gitignore, чтобы указать в нем новые файлы, которые должны быть проигнорированы.
git curl
Утилита командной строки, которая позволяет выполнять HTTP-запросы с различными параметрами и методами.
`curl -X GET “https://api.openweathermap.org/data/2.5/weather?zip=95050&appid=fd4698c940c6d1da602a70ac34f0b147&units=imperial”
git curl
git cat-file
Предоставляет информацию о содержимом, типе и размере объектов из репозитория Git.
Получает размер ([s]ize) последнего (HEAD) коммита в байтах: git cat-file -s HEAD
Получает тип ([t]ype, один из: blob, tree, commit, tag) для указанного Git объекта: git cat-file -t {{8c442dc3}}
Выводит красиво ([p]rint) содержимое указанного Git объекта, учитывая его тип: git cat-file -p {{HEAD~2}}
git CLS
Oчистить экран или окно консоли от команд и любого вывода, генерированного ими. Однако эта команда не очищает историю команд пользователя.
git rm
Remove files from the repository index and the local filesystem.
Remove file from repository index and filesystem: git rm {{file}}
Remove directory: git rm -r {{directory}}
Remove file from repository index but keep it untouched locally: git rm --cached {{file}}
git mv
Перемещение или переименование файлов и обновление индекса git.
Переместить файл в РЕПО и добавить перемещение в следующий коммит: git mv {{path/to/file}} {{new/path/to/file}}
Переименовать файл и добавить переименование в следующий коммит: git mv {{filename}} {{new_filename}}
Перезаписать файл в целевом пути, если он существует: git mv --force {{file}} {{target}}
git cp
Copy an existing file to a new location, preserving history.
Copy an existing file in a Git repo, staying in the same directory: git cp {{file}} {{new_file}}
Copy an existing file in a Git repo and place it elsewhere: git cp {{path/to/file}} {{path/to/new_file}}
git find
Searches for files satisfying the EXPRESSION, a la find(1), anywhere in a Git repo.
git find [SWITCHES] [REVS] [--] [EXPRESSION]