Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.idea
/input
/output*
/target
/classes
79 changes: 79 additions & 0 deletions 2017-big-data.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-client:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-common:2.6.0" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:11.0.2" level="project" />
<orderEntry type="library" name="Maven: commons-cli:commons-cli:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.1.1" level="project" />
<orderEntry type="library" name="Maven: xmlenc:xmlenc:0.52" level="project" />
<orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.4" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-net:commons-net:3.1" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.3" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.6" level="project" />
<orderEntry type="library" name="Maven: commons-digester:commons-digester:1.8" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.7.0" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.5" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.9.13" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13" level="project" />
<orderEntry type="library" name="Maven: org.apache.avro:avro:1.7.4" level="project" />
<orderEntry type="library" name="Maven: com.thoughtworks.paranamer:paranamer:2.3" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.0.4.1" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:2.5.0" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-auth:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.2.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.2.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.directory.server:apacheds-kerberos-codec:2.0.0-M15" level="project" />
<orderEntry type="library" name="Maven: org.apache.directory.server:apacheds-i18n:2.0.0-M15" level="project" />
<orderEntry type="library" name="Maven: org.apache.directory.api:api-asn1-api:1.0.0-M20" level="project" />
<orderEntry type="library" name="Maven: org.apache.directory.api:api-util:1.0.0-M20" level="project" />
<orderEntry type="library" name="Maven: org.apache.curator:curator-framework:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.curator:curator-client:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.6.0" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: org.htrace:htrace-core:3.0.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.4.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.tukaani:xz:1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-hdfs:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.mortbay.jetty:jetty-util:6.1.26" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty:3.6.2.Final" level="project" />
<orderEntry type="library" name="Maven: xerces:xercesImpl:2.9.1" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-mapreduce-client-app:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-mapreduce-client-common:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-yarn-client:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-yarn-server-common:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-mapreduce-client-shuffle:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.fusesource.leveldbjni:leveldbjni-all:1.8" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-yarn-api:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-mapreduce-client-core:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-yarn-common:2.6.0" level="project" />
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.2.2" level="project" />
<orderEntry type="library" name="Maven: javax.xml.stream:stax-api:1.0-2" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-core:1.9" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-client:1.9" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-jaxrs:1.9.13" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-xc:1.9.13" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-mapreduce-client-jobclient:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-annotations:2.6.0" level="project" />
</component>
</module>
9 changes: 6 additions & 3 deletions answers.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
2. is 126420
3. 41.602
4. french 5742
Stop words: 315 / 50111754
Top 7 word: was 18390091
Top 5 name: October 1072212

Время выполняения без комбайнеров: 1 час 3 минуты
Время выполнения с комбайнерами: 1 час 52 минут
294 changes: 294 additions & 0 deletions autoencoder.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,294 @@
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "autoencoder.ipynb",
"version": "0.3.2",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/NSuprotivniy/2017-big-data/blob/master/autoencoder.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "tOU8ff_RJ7zY",
"colab_type": "code",
"outputId": "3894c90e-508e-4144-9e1b-fd8c2c855f70",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 326
}
},
"cell_type": "code",
"source": [
"pip install git+https://github.com/rcmalli/keras-vggface.git"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting git+https://github.com/rcmalli/keras-vggface.git\n",
" Cloning https://github.com/rcmalli/keras-vggface.git to /tmp/pip-req-build-xfo8xg7l\n",
"Requirement already satisfied (use --upgrade to upgrade): keras-vggface==0.5 from git+https://github.com/rcmalli/keras-vggface.git in /usr/local/lib/python3.6/dist-packages\n",
"Requirement already satisfied: numpy>=1.9.1 in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (1.16.3)\n",
"Requirement already satisfied: scipy>=0.14 in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (1.2.1)\n",
"Requirement already satisfied: h5py in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (2.8.0)\n",
"Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (4.3.0)\n",
"Requirement already satisfied: keras in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (2.2.4)\n",
"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (1.12.0)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from keras-vggface==0.5) (3.13)\n",
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow->keras-vggface==0.5) (0.46)\n",
"Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/dist-packages (from keras->keras-vggface==0.5) (1.0.9)\n",
"Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/dist-packages (from keras->keras-vggface==0.5) (1.0.7)\n",
"Building wheels for collected packages: keras-vggface\n",
" Building wheel for keras-vggface (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Stored in directory: /tmp/pip-ephem-wheel-cache-yvofgm87/wheels/36/07/46/06c25ce8e9cd396dabe151ea1d8a2bc28dafcb11321c1f3a6d\n",
"Successfully built keras-vggface\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "ZfPNLVe9JoyO",
"colab_type": "code",
"outputId": "37054b0a-5378-4fa4-f466-f52b16b4f1c3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"cell_type": "code",
"source": [
"from keras.engine import Model\n",
"from keras.layers import Flatten, Dense, Input, Dropout, Reshape\n",
"from keras_vggface.vggface import VGGFace\n",
"from keras.utils import Sequence\n",
"from keras.callbacks import ModelCheckpoint\n",
"from keras.optimizers import Adam\n",
"import tensorflow as tf\n",
"from keras import backend as K"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
}
]
},
{
"metadata": {
"id": "-W3_Na-7Sx9u",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import os\n",
"from glob import glob\n",
"import numpy as np\n",
"from google.colab import drive\n",
"import math"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "mIG0AxdaKaUb",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"def get_model():\n",
" vgg_model = VGGFace(include_top=False, input_shape=(224, 224, 3), model='resnet50')\n",
" vgg_model.trainable = False\n",
" last_layer = vgg_model.get_layer('avg_pool').output\n",
" x = Flatten(name='flatten')(last_layer)\n",
" out = Dense(2048, activation='relu')(x)\n",
" encoder = Model(vgg_model.input, out, name=\"resnet50_faces_encoder\")\n",
" \n",
" input_encoded = Input(shape=(2048,))\n",
" flat_decoded = Dense(224*224*3, activation='relu')(input_encoded)\n",
" decoded = Reshape((224, 224, 3))(flat_decoded)\n",
" \n",
" decoder = Model(input_encoded, decoded)\n",
"\n",
" autoencoder = Model(vgg_model.input, decoder(encoder(vgg_model.input)))\n",
" autoencoder.compile(optimizer=Adam(lr=0.000001), loss='binary_crossentropy')\n",
" return encoder, autoencoder"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "-Tq1VVX-kSQc",
"colab_type": "code",
"outputId": "20b5f9d0-a0e6-435d-bf66-6c877836bdbc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"cell_type": "code",
"source": [
"drive.mount(\"/content/nsuprotivniy/\")\n",
"data_path = \"/content/nsuprotivniy/My Drive/Colab Notebooks/data/LCC_FASD/\""
],
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": [
"Drive already mounted at /content/nsuprotivniy/; to attempt to forcibly remount, call drive.mount(\"/content/nsuprotivniy/\", force_remount=True).\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "CDOcZhKPZGqX",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"class Generator(Sequence): \n",
" def __init__(self, batch_size = 2):\n",
" files = glob(os.path.join(data_path, \"*/*/cropped/*.npy\")) + glob(os.path.join(data_path, \"LCC_FASD_evaluation/cropped/*.npy\"))\n",
" self.batches = np.array_split(files, math.ceil(len(files) / batch_size))\n",
" \n",
" def __len__(self):\n",
" return len(self.batches)\n",
"\n",
" def __getitem__(self, idx):\n",
" X = np.array([np.load(path) for path in self.batches[idx]])\n",
" return X, X"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "22gRJnAuNtOu",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"gen = Generator()"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "eZkLM1f74371",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model_path = os.path.join(data_path, \"autoencoder\")\n",
"if (not os.path.exists(model_path)):\n",
" os.mkdir(model_path)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "9KBbrZtrMlYt",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"checkpoints_path = os.path.join(model_path, \"checkpoints\")\n",
"if (not os.path.exists(checkpoints_path)):\n",
" os.mkdir(checkpoints_path)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "S_xR37tueCy1",
"colab_type": "code",
"outputId": "2ef79dbf-9a0b-40d8-9835-9afe412e4406",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 207
}
},
"cell_type": "code",
"source": [
"checkpoint_filename = \"autoencoder_model_weights.h5\"\n",
"checkpoint = [ModelCheckpoint(os.path.join(checkpoints_path, checkpoint_filename), verbose=1, period=5)]\n",
"encoder, autoencoder = get_model()\n",
"autoencoder.fit_generator(gen, epochs=100, verbose=1, callbacks=checkpoint)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Colocations handled automatically by placer.\n",
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Use tf.cast instead.\n",
"Epoch 1/100\n",
"9414/9414 [==============================] - 3506s 372ms/step - loss: -1288.1002\n",
"Epoch 2/100\n",
" 245/9414 [..............................] - ETA: 46:07 - loss: -1884.6891"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "2n2ZjLk74b_Y",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model_json = encoder.to_json()\n",
"with open(os.path.join(model_path, \"encoder.json\"), \"w\") as json_file:\n",
" json_file.write(model_json)\n",
" \n",
"encoder.save_weights(os.path.join(model_path, \"encoder.h5\"))"
],
"execution_count": 0,
"outputs": []
}
]
}
Loading