Projects CV
Back to Projects View on GitHub

PyTorch deep learning framework

Deeppy

A flexible framework for building, training, and studying deep learning systems. Deeppy separates data, algorithms, and neural networks so each part of a pipeline can be replaced or extended independently.

Python PyTorch TensorBoard Research tooling

Designed for experimentation

Modular by design

Swap networks, algorithms, and data pipelines without rewriting the rest of the training workflow.

Research-oriented

Keep prototypes readable while retaining the flexibility needed to test new architectures and methods.

Plotting and logging

Visualize training progress and record experiments as part of the learning workflow.

PyTorch-native

GPU execution, automatic mixed precision, and torch.compile support are available by default.

Explainability tooling

Tools for making black-box models more interpretable are planned for a future release.

Architecture at a glance

Deeppy keeps the major concerns of a learning system independent, making it possible to move from a small experiment to a more involved training setup without changing the underlying abstractions.

Deeppy framework architecture diagram

Models and networks

Reinforcement learning
Natural language processing
Computer vision
Autoencoders
Base model
  • A reusable base model abstraction for custom experiments.

Quickstart: train a GPT model

The framework can be used to load a text corpus, construct a GPT model, train it through a learning frame, and generate text.

Load data and build the model
with open("assets/shakespeare.txt", "r", encoding="utf-8") as f:
    text = f.read()

encoding = tiktoken.encoding_for_model("gpt-2")

data = GPTText(
    text=text,
    tokenizer=encoding,
    context_size=context_size
)

model = GPT({
    "vocab_size": vocab_size,
    "embed_dim": embed_dim,
    "num_heads": num_heads,
    "num_layers": num_layers,
    "context_size": context_size,
    "device": device,
    "criterion": nn.CrossEntropyLoss(ignore_index=-1),
})
Train the model
lf = LearnFrame(model, data)

for _ in range(epochs):
    lf.optimize()

lf.plot(show_result=True, log=True)
GPT training output
Generate text and output
model.generate("KING RICHARD III: \n On this very beautiful day, let us")
Output
KING RICHARD III:

On this very beautiful day, let us us hear

The way of the king.

DUKE OF YORK::

I will not be avoided'd with my heart.

DUKEKE VINCENTIO:

I thank you, good father.

LLUCIO:

I thank you, good my lord; I'll to your your daughter.

KING EDWARD IV:

Now, by the jealous queen

Quickstart: train a reinforcement learning agent

Environment data, a policy network, and an algorithm can be composed into a single training loop.

Reinforcement learning agent code
env = gym.make("LunarLander-v1")
data = dp.EnvData(env, buffer_size=100000)

policy_network = {
    "layers": [obs, 128, 128, act],
    "blocks": [nn.Linear, nn.ReLU],
    "out_act": nn.Softmax,
    "weight_init": "uniform",
}

model = dp.SAC(sac_params)
lf = dp.LearningFrame(model, data)

for _ in range(epochs):
    lf.collect()
    lf.optimize()

lf.plot()
lf.get_anim()
LunarLander agent animation
An animation of the trained agent.

Berk Can Özmen

Download PDF

Summary

Machine learning engineer and software developer specializing in building end-to-end ML systems and applications. Strong background in Python, PyTorch, deep learning, computer vision, reinforcement learning, and scientific computing.

Skills

Programming: Python, C++, JavaScript, SQL
Machine Learning: PyTorch, Scikit-learn, Deep Learning, Computer Vision, Reinforcement Learning
Sci. Computing: NumPy, SciPy, Pandas, GeoPandas, Numba, CUDA, Matplotlib, Plotly
Backend: Django, FastAPI, REST APIs, PostgreSQL, SQLite, Celery
MLOps: Git, Docker, Linux, Uvicorn, TensorBoard, Testing, Cloud Deployment
Languages: English (C2), German (C1), Turkish (Native)

Experience

06/2025 - Present
Berlin
Freelance ML Engineer
Self-Employed
  • Develop web applications, full-stack machine learning pipelines, and data analysis tools for clients across various industries.
  • bcozmen.com/autocomplete Code and text autocomplete service
    Python · Django · FastAPI · Qwen · Docker · Cloud Deployment
  • bcozmen.com/mlops Full-stack machine learning pipeline for kernel and neural density regression
    Python · Scikit-learn · PyTorch · FastAPI · Docker · PostgreSQL · Cloud Deployment
  • bcozmen.com/rag Wikipedia RAG system
    Python · FastAPI · Qwen · Cloud Deployment
09/2023 - 09/2024
Berlin
Machine Learning Engineer
Fraunhofer SIRIOS
PyTorch · TensorBoard · OSMnx · Geopandas · Wetterdienst
  • Adapted a geospatial emergency response simulation system into a reinforcement learning environment, modeling Berlin's road network, empirical traffic patterns, and incident data.
  • Designed and implemented RL-based control policies that found the optimal solution for analytically solvable cases and produced solutions within emergency response guidelines for complex cases.
  • Designed the reward scheme and evaluation framework to validate policy performance across both scenarios.
09/2021 - 04/2023
Berlin
Computer Vision & Robotics bcozmen.com/scioi
Science of Intelligence
C++ · OpenCV · ROS
  • Collaborated within a research team to develop an autonomous robotic system combining a camera, robotic arm, and soft hand to solve a lockbox puzzle.
  • Implemented a computer vision pipeline that leverages the robotic arm's movement to generate 3D reconstructions and build a model of the environment.
  • Designed feedback loops between the robotic arm and the computer vision pipeline, enabling intelligent exploration of the environment and adaptive interaction based on observations of the lockbox puzzle.
2019 - 2021
Berlin
Internship at Neural Information Processing Group
Technische Universität Berlin
Numba · NumPy · DEAP · neurolib
  • Implemented a simulation environment for FitzHugh-Nagumo based resting-state brain network models, using empirical structural connectivity and functional connectivity data.
  • Explored the parameter space of the FitzHugh-Nagumo model using genetic algorithms and Bayesian optimization with Gaussian processes.
09/2017 - 04/2019
Berlin
Software Developer
Ten8
Selenium · BeautifulSoup · requests
  • Developed and maintained the company's website and internal application for a Berlin-based startup.
  • Developed a web scraping tool to collect and process initial coin offering (ICO) data, automatically alerting the team to new and potentially interesting opportunities.
2013 - 2016
Istanbul
FRC Team Member & Leader
Inanc Mechatronics Club
  • Designed and built competition robots for the FIRST Robotics Competition (FRC), serving as team leader in 2015 and managing the technical team of 10 members.
  • Built robots entirely in-house from design to competition, performing 3D CAD design, welding, machining/milling, mechanical assembly, and programming for both teleoperated and autonomous operation.

Projects

2024 - Present
Deeppy bcozmen/deeppy
PyTorch · TensorBoard
  • Modular deep learning training framework designed for fast prototyping and experimenting
  • Clean separation of model, data, optimizer, scheduler and training logic with automated logging, checkpointing, automatic mixed precision and other efficiency features
  • Clean separation of GPU and CPU space with automatic device placement, memory management and buffer support for large datasets
  • Developed with feedback from practical experience, including my own work and master thesis.
2022 - Present
Agent-Based Neuro-Evolution bcozmen/abne
PyTorch · CUDA
  • Long-term personal research project investigating neuroevolution in agent-based environments without an explicit loss function.
  • Developed a physics-based environment in which agents evolve neural network controllers to survive and adapt to their environment.
  • Investigated low-dimensional parameterizations of agent behavior using message-passing graph neural networks, along with non-destructive crossover and mutation operators for neural network controllers.
  • Aims to understand the emergence of complex behaviors in a multi-agent system and how the selection pressure drives novel strategies that cannot be designed through explicit loss functions.
2025
r-hash-SANE bcozmen/r-hash-SANE
Deeppy
  • A transformer-based rotation-equivariant neural network for learning NeRF latent spaces.
  • Extension of the SANE architecture to hash-grid NeRFs

Education

2026
Berlin
M.Sc. Computer Science, 1.3 (3.8/4.0) bcozmen/master_thesis
Technische Universität Berlin
  • Thesis: Interpreting NeRF Weights Across Architectures with Graph Meta-Networks for Geometry and Appearance Attribution
  • Supervisor: Prof. Dr. Olaf Hellwich
2021
Berlin
B.Sc. Computer Science, 1.7 (3.5/4.0) bcozmen/bsc_thesis
Technische Universität Berlin
  • Modelling Functional Connectivity in Health and Psychiatric Disorders | Thesis Grade: 1.3
  • Supervisor: Prof. Dr. Klaus Obermayer