CCCPaste

Project ML

# Обучение модель предсказывать, насколько хорошо последовательности будут работать для РНК-интерференции.
 
import deepchem as dc
import tensorflow as tf
import tensorflow.keras.layers as layers
import matplotlib.pyplot as plot
 
# Построение модели.
 
features = tf.keras.Input(shape=(21, 4))
prev = features
for i in range(2):
    prev = layers.Conv1D(filters=10, kernel_size=10, activation=tf.nn.relu, padding='same')(prev)
    prev = layers.Dropout(rate=0.3)(prev)
output = layers.Dense(units=1, activation=tf.math.sigmoid)(layers.Flatten()(prev))
keras_model = tf.keras.Model(inputs=features, outputs=output)
model = dc.models.KerasModel(
    keras_model,
    loss=dc.models.losses.L2Loss(),
    batch_size=1000,
    model_dir='rnai')
 
# Загружаем данные для обучения.
 
train = dc.data.DiskDataset('train_siRNA')
valid = dc.data.DiskDataset('valid_siRNA')
 
# Обучение модель, отслеживая ее производительность в наборах данных для обучения и проверки.
 
metric = dc.metrics.Metric(dc.metrics.pearsonr, mode='regression')
for i in range(20):
    model.fit(train, nb_epoch=10)
    print(model.evaluate(train, [metric])['pearsonr'])
    print(model.evaluate(valid, [metric])['pearsonr'])